搜尋本站文章

2008-09-24

查詢資料庫物件何時被修改


剛好有朋友問到:想要知道資料庫是否有被修改,例如:預存程序何時被修改過?
筆者的建議是:
可以利用:sys.objects ,針對在資料庫內建立的每個使用者自訂結構描述範圍的物件,各包含一個資料列。
請參考以下的範例碼:
USE pubs
GO

-- 建立預存程序
CREATE PROC uspA1
AS
SELECT '原始資料'
GO 

--
SELECT * FROM sys.objects
WHERE name='uspA1'

-- 檢視預存程序的建立日期與修改日期,都是相同
SELECT name N'物件名稱', create_date N'建立日期',modify_date N'修改日期'
FROM sys.objects
WHERE name='uspA1'

-- 修改預存程序的程式碼
ALTER PROC uspA1
AS
SELECT '原始資料'
SELECT '修改資料'
GO

-- 檢視預存程序的被修改日期,已經不同了
SELECT name N'物件名稱', create_date N'建立日期',modify_date N'修改日期'
FROM sys.objects
WHERE name='uspA1'


請參考下圖所示:檢視預存程序的被修改日期,已經不同了。