代码之家  ›  专栏  ›  技术社区  ›  Jader Dias

如何获取SQL Server 2005上的上次修改日期时间?

  •  1
  • Jader Dias  · 技术社区  · 15 年前

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

    数据库呢?

    编辑 这个问题的解决方案只考虑创建和更改修改。有关插入、更新和删除,请查看 my next question

    2 回复  |  直到 15 年前
        1
  •  1
  •   KM.    15 年前

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

    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
    
        2
  •  1
  •   Philip Kelley    15 年前

    KM的解决方案将显示 对象 (表定义)上次被修改。没有内置方法来确定给定行中的数据上次更新(或插入,或删除)的时间。我所发现的唯一99%可靠的方法是使用触发器,当某个麻烦制造者禁用触发器时,缺少1%的可靠方法。