last_user_update和modify_date有什么区别?

时间:2015-12-10 09:50:54

标签: sql sql-server-2005

我试图找出一张表被修改的时间。使用下面两组不同的代码,我得到两个不同的答案:

Select * 
from sys.tables 
where name = 'AN_StockChecks_000_Specs_010_StockChecks_010_PlantStockCheckSettings'

输出:

modify_date
-----------------------
2015-12-07 15:40:58.557

方法#2:

SELECT 
    OBJECT_NAME(OBJECT_ID) AS DatabaseName, last_user_update, *
FROM 
    sys.dm_db_index_usage_stats
WHERE 
    database_id = DB_ID( 'IESA_DWHS')
    AND ID = OBJECT_ID('AN_StockChecks_000_Specs_010_StockChecks_010_PlantStockCheckSettings')

输出:

last_user_update
-----------------------
2015-12-10 09:25:43.290

1 个答案:

答案 0 :(得分:0)

modify_date中的sys.tables是上次修改表结构的日期 - 上次添加或删除列或更改列时的日期属性。

或者正如SQL Server联机丛书所说:

  

<强> modify_date
  使用 ALTER 语句对上次修改对象的日期。如果对象是表或视图,则在创建或更改表或视图上的聚簇索引时,modify_date也会更改。

它与该表上的数据操作无关。