Выберите все записи, созданные или измененные после определенной даты во всех таблицах в базе данных SQL Server. - PullRequest
0 голосов
/ 06 октября 2010

Мне нужен список всех новых или измененных записей, созданных после определенной даты во всех таблицах базы данных SQL Server.

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

Есть ли способ сделать это с помощью одного запроса или с помощью другого инструмента?

Как я могу сделать это для одного стола?

Ответы [ 2 ]

4 голосов
/ 06 октября 2010

Предполагая, что все таблицы имеют столбец даты ModifiedDate, вы можете использовать недокументированный sp_msforeachtable proc

sp_msforeachtable 'select ''?'',count(*) 
   from ? where ModifiedDate > ''20100101'''

Просто настройте диапазон дат, я также использую count (*), потому что сомневаюсь, что вы хотитеВам возвращаются миллионы строк

Если у вас нет столбца, значит, вам не повезло, или если столбец назван по-разному в каждой таблице, вам нужно использовать динамический sql вместе с information_schema.columns иinformation_schema.tables для построения этого запроса

1 голос
/ 06 октября 2010

Нет ничего присущего SQL Server, где вы можете получить эту информацию. Как указал @JNK, вы должны встроить это в дизайн вашей базы данных. И вы должны построить решение для каждой таблицы, добавив дату создания в виде столбца. Затем вы можете использовать SQL для сбора информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...