количество строк в таблице

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
danatz
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 30.08.2008 (Сб) 0:23

количество строк в таблице

Сообщение danatz » 03.10.2008 (Пт) 16:08

Не подскажите как ограничить количество записей (строк) в таблице БД MS SQL Server? Чтобы после достижения определенного количества строки перезаписывались?

Info_m.be_free
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 27.02.2003 (Чт) 21:38
Откуда: Ирпень

Re: количество строк в таблице

Сообщение Info_m.be_free » 03.10.2008 (Пт) 16:38

мб переписать ядро субд?

речь идет о Count?

Ем вилкой...

BION
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 259
Зарегистрирован: 24.01.2005 (Пн) 21:05

Re: количество строк в таблице

Сообщение BION » 03.10.2008 (Пт) 17:00

danatz писал(а):Не подскажите как ограничить количество записей (строк) в таблице БД MS SQL Server? Чтобы после достижения определенного количества строки перезаписывались?


Вот маленький примерчик, давненько на ПХП делал для MySQL (из комментариев все понятно),
выполняется при добавлении записи в БД, фишка в операторе «DELETE FROM ... LIMIT ...»
Правда я не в курсе есть ли в MSSQL оператор LIMIT, думаю что есть (TOP например).
Код: Выделить всё
$last_recs = 10; // лимит записей
$recs_for_del = 0;       // кол-во записей для удаления
      
$res = mysql_query("SELECT * FROM tbl");  //получаем данные из базы
$j=mysql_num_rows($res);  // получаем количество записей
         
if($j>$last_recs) // если кол-во записей в базе превышает лимит, то...
{
   $recs_fordel = $j - $last_recs;  // вычисляем кол-во записей для удаления
   mysql_query("DELETE FROM  tbl ORDER BY id LIMIT ".$recs_for_del);  // удвляем необходимое кол-во, отсортировав по ID
}
т.е. старые записи за пределами 10 удаляются

На сколько знаю в MSSQL есть такие вещи
Код: Выделить всё
set rowcount 5
/*
*  удаляем установленное ранее кол-во записей (set rowcount 5)
*/
delete from MyTable
set rowcount 0
либо
Код: Выделить всё
delete top (5) MyTable


Думаю так, попробуй, мс сиквел сервера у менян нет.

з.ы. Вообще на этом форуме есть раздел «Базы данных» именно для подобных вопросов.
Буээ!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: количество строк в таблице

Сообщение Sebas » 06.10.2008 (Пн) 9:40

сделай триггер и смотри, сколько строк и что вставляется.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: количество строк в таблице

Сообщение Andrey Fedorov » 06.10.2008 (Пн) 11:53

Sebas писал(а):сделай триггер и смотри, сколько строк и что вставляется.


Наверное проще раз в сутки удалять лишние записи. Задав Job, к примеру...
А чтобы наверняка сказать - надо знать задачу...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Info_m.be_free
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 27.02.2003 (Чт) 21:38
Откуда: Ирпень

Re: количество строк в таблице

Сообщение Info_m.be_free » 08.10.2008 (Ср) 13:59

если необходимо в SQL Server 2008 есть возможность привязать событие к аудиту по признаку количество строк в таблице :alien: .

Ем вилкой...

danatz
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 30.08.2008 (Сб) 0:23

Re: количество строк в таблице

Сообщение danatz » 13.10.2008 (Пн) 7:58

Подскажите как удалить нужное количество строк, отсортировав предварительно таблицу?
Что-то наподобе:
("DELETE FROM table ORDER BY id LIMIT " & N) или с TOP, но что-то не проходит, где ошибка?

Получается только так:
set rowcount 5
delete from MyTable
set rowcount 0

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Re: количество строк в таблице

Сообщение Konst_One » 13.10.2008 (Пн) 12:16

Код: Выделить всё
DELETE FROM TABLE
WHERE ID IN(SELECT TOP 10 T.ID FROM TABLE T ORDER BY T.ID DESC)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

    TopList