我需要查一下上次函数是什么时候改变的。我知道如何检查创建日期(它是在SQL Server Management Studio的函数属性窗口)。 我发现在SQL Server 2000中不可能检查修改日期(看看这篇文章:是否有可能确定SQL Server 2000中存储过程最后一次修改的时间?)
在SQL Server 2008中可以检查吗?MS是否在系统表中添加了一些允许检查的新功能?
我需要查一下上次函数是什么时候改变的。我知道如何检查创建日期(它是在SQL Server Management Studio的函数属性窗口)。 我发现在SQL Server 2000中不可能检查修改日期(看看这篇文章:是否有可能确定SQL Server 2000中存储过程最后一次修改的时间?)
在SQL Server 2008中可以检查吗?MS是否在系统表中添加了一些允许检查的新功能?
当前回答
这是寻找函数的正确解决方案:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'fn'
AND name = 'fn_NAME'
其他回答
在存储过程中试试这个方法:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
ORDER BY modify_date DESC
函数的类型是FN,而不是过程的P。或者您可以对名称列进行筛选。
你可以用它来检查函数和存储过程的修改日期:
SELECT 'Stored procedure' as [Type] ,name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
UNION all
Select 'Function' as [Type],name, create_date, modify_date
FROM sys.objects
WHERE type = 'FN'
ORDER BY modify_date DESC
or :
SELECT type ,name, create_date, modify_date
FROM sys.objects
WHERE type in('P','FN')
ORDER BY modify_date DESC
-- this one shows type like : FN for function and P for stored procedure
结果是这样的:
Type | name | create_date | modify_date
'Stored procedure' | 'firstSp' | 2018-08-04 07:36:40.890 | 2019-09-05 05:18:53.157
'Stored procedure' | 'secondSp' | 2017-10-15 19:39:27.950 | 2019-09-05 05:15:14.963
'Function' | 'firstFn' | 2019-09-05 05:08:53.707 | 2019-09-05 05:08:53.707
在最新版本(2012年或更高版本)中,可以使用此查询获取修改后的存储过程详细信息
SELECT create_date, modify_date, name FROM sys.procedures
ORDER BY modify_date DESC
这是寻找函数的正确解决方案:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'fn'
AND name = 'fn_NAME'