我想要一个SQL Server数据库中所有表中特定日期之后创建的所有新记录或修改记录的列表。
我正在使用SQL Server 2005和ssms。
有没有办法用一个查询或其他工具执行此操作?
我怎么能为一张桌子做这件事?
答案 0 :(得分:4)
假设所有表都有ModifiedDate日期列,则可以使用未记录的sp_msforeachtable
proc
sp_msforeachtable 'select ''?'',count(*)
from ? where ModifiedDate > ''20100101'''
只需调整日期范围,我也使用count(*)因为我怀疑你想要数百万行返回给你
如果您没有列,那么您运气不佳,或者如果每个表中的列名称不同,那么您需要使用动态sql与information_schema.columns
和information_schema.tables
一起构建这个查询
答案 1 :(得分:1)
SQL Server中没有固有内容可以获取该信息。正如@JNK所指出的那样,您必须将其构建到数据库设计中。而且,您必须通过将创建日期添加为列来为每个表构建解决方案。然后,您可以使用SQL来捕获信息。