2010-09-28 43 views
1

我處於需要查找上次遷移後發生的數據庫更改的情況。如何查找自上次遷移後發生的SQL Server更改

例如:更改發生在存儲過程,以及視圖和函數。

如何找到這些更改。

我們沒有使用任何第三方工具。

請任何人都可以幫我解決這個問題。

在此先感謝。

Venkat

回答

6

試試這個:

SELECT 
    modify_date 
     ,type_desc 
     ,name 
    FROM sys.objects 
    WHERE is_ms_shipped=0 
     --AND modify_date>='yyyy/mm/dd' <--optionally put in your date here 
    ORDER BY 1 DESC 
+0

你能告訴我什麼是is_ms_shipped? – Anoop 2010-09-28 16:49:43

+0

'is_ms_shipped' ='對象由內部SQL Server組件創建。[sys.objects(Transact-SQL)](http://msdn.microsoft.com/en-us/library/ms190324.aspx) – 2010-09-28 16:50:43

+0

There是很多不在'sys.objects'中的數據庫實體:數據庫主體,權限,文件和文件組,模式,服務,證書,類型,程序集等等。我認爲,儘管大多數*有趣的實體都在'sys.objects'中。 – 2010-09-28 16:51:39

4

使用模式比較工具,如VSDB架構比較(見Compare and Synchronize Database Schemas)或紅門SQL Compare

+0

+1,因爲這是正確的做法,但他確實說*我們沒有使用任何第三方工具。*所以我不確定這是他正在尋找的答案。 – 2010-09-28 16:52:40

+0

實際上,雖然他的意思是沒有第三方工具可能會修改模式,但現在我意識到您可能是對的。 – 2010-09-28 16:54:01

+0

感謝您的回覆。這真的很有幫助。 – Anoop 2010-09-28 17:58:16

0

如果您的舊版本和新版本安裝在不同的SQL Server中,請轉到SQL Server Management Studio,右鍵單擊數據庫,然後從「任務」菜單中選擇「生成腳本」。選擇導出您感興趣的對象。

對它們進行操作並對它們進行區分。