如何在Sql Server 2005上获得最后修改日期时间?

时间:2009-08-04 13:39:29

标签: sql-server sql-server-2005 tsql

有没有办法在Sql Server 2005上获取表的最后修改日期时间?最好不要创建触发器..

对于数据库?

编辑此问题的解决方案仅考虑CREATE和ALTER修改。对于INSERT,UPDATE和DELETE,请查看my next question

2 个答案:

答案 0 :(得分:1)

这将列出从最近的更改到最旧的所有对象类型,您可以根据需要轻松修改...

DECLARE @SearchParams   varchar(500)
SET @SearchParams='yourObjectName'

SELECT
    CONVERT(varchar(23),modify_date,121) AS modify_date
        ,type_desc
        ,name
    FROM sys.objects
    WHERE is_ms_shipped=0 AND name LIKE '%'+@SearchParams+'%'
    ORDER BY modify_date DESC

如果您只想要表,请尝试:

DECLARE @SearchParams   varchar(500)
SET @SearchParams='YourTableName'
SELECT
    CONVERT(varchar(23),modify_date,121) AS modify_date
        ,type_desc
        ,name
    FROM sys.objects
    WHERE type='U'
        AND name LIKE '%'+@SearchParams+'%' --can use "=@SearchParams" if you have the entire table name
    ORDER BY modify_date DESC

答案 1 :(得分:1)

KM的解决方案将在上次修改表对象(表定义)时显示。没有内置的方法来确定给定行中的数据何时上次更新(或插入,当然还有删除)。我发现只有99%可靠的方法是使用触发器,缺少1%代表一些故障引擎禁用触发器。