我当前的项目不使用任何数据库迁移,因此如果出现任何更改,都可以手动找到。
是否可以找出数据库中哪些表具有在过去n天(例如7天)内创建的新行?
谢谢你的建议!
为insert创建一个触发器,使表中1的值为新插入的值或0的值为之前插入的值。。。。它是一个标志,表示添加了一个新值。。。然后你可以做一个更新语句来确保它们都取0值。。。这样,每次在表中插入时,都会将该列与1相加示例:
id StudentName flag
1 Frank 0
2 Andrew 1
insert into tablename(id,StudentName,flag) Values(3,'Alice',1)
始终使标志为1,以知道这是一个新记录,并且它是最近添加的。
update tablename set flag = 0
这个声明是为了确保所有内容都在之前插入,而且它不是新的!!
创建一个公共表,当表更新时显示
创建表TableUpdatedRecord(table_Name varchar(max),Flag int,TableCreatedDate DateTime,Modified Date)
在表中插入新行时首先创建具有记录的表
Create table TableUpdatedRrecord (Table_Name varchar(max),Flag INT,TableCreatedDate DateTime,Modified DatetIME)
现在为每个表创建一个触发器,当表有一个新的插入时执行
CREATE触发器触发器名称打开dbo。表格名称插入后为开始声明@创建日期日期时间设置@CreatedDate=(从sys.tables t中选择t.create_date,其中name="TableName")INSERT INTO TableUpdatedRecord(表格名称、[Flag]、[TableCreatedDate]、[Modified])值("表格名称"1.,@CreatedDate,GetDate())结束