SQL Server - автоматически рассчитывать общее количество каждый день - PullRequest
1 голос
/ 29 июля 2010

Мне нужно вести ежедневную статистику количества записей в таблице.

Есть ли способ автоматизировать подсчет записей ежедневно и записывать результат в другую таблицу? Может быть, с помощью задания агента SQL или что-то подобное?

Я использую SQL Server 2008.

Спасибо!

Edit: Если я сегодня удалю все записи от 01.01.2010, статистика все равно должна показать, что на 01.01.2010 в конце дня было 500 записей. Так что использование только GetDate () и суммирование не работает, так как я получил бы 0 записей с этим методом за 1/1/2010.

Ответы [ 5 ]

2 голосов
/ 29 июля 2010

Триггер вставки: обновить запись таблицы подсчета за сегодня (вставить, если она еще не создана)
Удалить триггер: убрать запись таблицы подсчета за сегодня (вставить, если она еще не создана)

2 голосов
/ 29 июля 2010

Добавьте столбец к вашей таблице следующим образом:

ALTER TABLE My_Table
ADD insert_date DATETIME NOT NULL DEFAULT GETDATE()

Затем можно выполнить запрос, как предполагалось в SQL.

1 голос
/ 29 июля 2010

Ответ Тома с приложением OMG_Ponies о надгробии вместо удаления - лучший ответ. Если вас беспокоит, сколько записей было в таблице в определенный день, есть большая вероятность, что кто-то однажды попросит информацию о этих записях в этот день. 1005 *

Если это не пойдет, то, как говорили другие, создайте вторую таблицу с полем для PK последней записи за день, а затем сосчитайте за день, а затем создайте задание, которое выполняется в конце каждого дня и считает все записи с OrginalTable.PK> MAX (NewCountTable.Last_PK_Field) и добавляет эту строку (Last_PK_Field, Count) в NewCountTable.

1 голос
/ 29 июля 2010

По-моему, вы ответили на свой вопрос с лучшим вариантом.Создайте задание, которое просто вызывает хранимую процедуру, получая счет и отметив его.

Другой вариант, упомянутый Томом Х., является лучшим выбором, но если вы не можете изменить таблицу по какой-либо причине, то работа является хорошим вариантом.

Другой вариант может заключаться в размещениитриггер вставки в эту таблицу для увеличения где-то счетчика, но это может повлиять на производительность в зависимости от того, как вы его реализуете.

Настройка задания проста с помощью интерфейса студии управления SQL с расписанием частоты запускаи какую хранимую процедуру вызывать.Вы даже можете просто написать команду прямо в окне команд шага вместо вызова sp.

0 голосов
/ 29 июля 2010

SQL Работа хорошая - да.

Или вы можете добавить столбец даты в таблицу по умолчанию GETDATE (). Это не сработает, если вы не хотите, чтобы люди ежедневно удаляли записи после факта.

...