sys.objects中的CreateDate和ModifyDate到底是什么

2024-01-05

我继承了以下管理查询并时不时地运行它,并充分了解它返回的内容:

--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

以下字段是什么?:

  1. “create_date” ...我猜测“CREATE TABLE ...”何时运行
  2. “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(使用前将#替换为@)

sys.objects中的CreateDate和ModifyDate到底是什么 的相关文章

随机推荐