有没有办法在Sql Server 2005上获取表的最后修改日期时间?最好不要创建触发器..
对于数据库?
编辑此问题的解决方案仅考虑CREATE和ALTER修改。对于INSERT,UPDATE和DELETE,请查看my next question
答案 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%代表一些故障引擎禁用触发器。