我继承了以下管理查询并时不时地运行它,并充分了解它返回的内容:
--Loop until the Cursor was not able to fetch
WHILE (@@Fetch_Status >= 0)
BEGIN
--Dump the results of the sp_spaceused query to the temp table
INSERT #TempTable
EXEC sp_spaceused @TableName
--Get the next table name
FETCH NEXT FROM tableCursor INTO @TableName
END
--get rid of the Cursor
CLOSE tableCursor
DEALLOCATE tableCursor
--Select TABLE properties with SIZE -- Final step
SELECT name,
convert(date,create_date) as CreateDate,
convert(date,modify_date) as ModifyDate,
numberofRows,
dataSize
FROM sys.objects
join #temptable tm on
tm.tablename = sys.objects.name
WHERE type in ('U')
order by modify_date
GO
以下字段是什么?:
- “create_date” ...我猜测“CREATE TABLE ...”何时运行
- “modify_date” ...这是表架构最后一次更改的时间吗?
他们中的任何一个是否告诉我上次数据的时间DELETED
or INSERTED
到表中?
如果没有那么我如何获取这些信息?
what BOL http://msdn.microsoft.com/en-us/library/ms190324.aspx says
修改日期 - 上次使用 ALTER 修改对象的日期
陈述。如果对象是表或视图,则modify_date也
在表或视图上创建聚集索引时发生更改,或者
改变了。
所以这是有人添加列或更改表架构的时刻
默认情况下,不存储信息(当有人插入/删除值时)
如果你想要有人将值插入表中的时间,你必须实现它
你可以加ChangeDate datetime
列到表中并添加触发器,该触发器将插入适当的值,但删除数据时不会保留
通常,如果您想记录数据更改,您可以通过创建与您要记录的表类似的表来实现它,添加“DataChange、操作、用户”等列
并实现 UPDATE、INSERT、DELETE 的 DML 触发器
或者使用 sql server 更改数据来跟踪数据更改,但我个人从未使用过那个:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)