我当前的项目不使用任何数据库迁移,因此如果出现任何更改,则可以手动找到它们。
是否有可能找出数据库中哪些表具有在过去n天(例如7天)中创建的新行?
感谢您的任何建议!
答案 0 :(得分:0)
创建一个Trigger for 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
这个判断以确保所有插入之前并且它不是新的!!
答案 1 :(得分:0)
创建一个公用表,显示何时更新表
创建表TableUpdatedRrecord(Table_Name varchar(max),Flag int,TableCreatedDate DateTime,Modified Date)
答案 2 :(得分:0)
首先创建在表格中插入新行时记录的表
Create table TableUpdatedRrecord (Table_Name varchar(max),Flag INT,TableCreatedDate DateTime,Modified DatetIME)
现在为每个表创建一个触发器,当表有一个新的插入
创建TRIGGER TriggerName ON dbo.TableName 插入后作为 开始 DECLARE @CreatedDate datetime 设置@ CreatedDate =(从sys.tables中选择t.create_date,其中name ='TableName') INSERT INTO TableUpdatedRrecord (TABLE_NAME,[标志],[TableCreatedDate],[修改]) VALUES (“表名” ,1 ,@创建日期 ,GETDATE()) END