2013-11-27 57 views
0

我需要比較兩個數據庫並確定哪些列已更改。一旦我確定了以某種方式更改的列(大小,類型等),我需要捕獲(寫入表)舊列定義和新列定義。例如,如果使用INFORMATION_SCHEMA.COLUMNS表,我發現列大小已經從25改爲50,我需要存儲兩列定義。在這種情況下,它可能是'char(25)'和'char(50)'。SQL Server - 構建列定義

我沒有問題使用INFORMATION_SCHEMA.COLUMNS表來確定何時發生了變化。

我遇到的問題是,一旦我確定列已更改,我如何構建列定義?在這種情況下,如何構建'char(25)'和'char(50)'?

有什麼地方可以獲得這種類型的定義嗎?如果我必須逐個構建定義,我如何確定定義的所有組件。

任何意見或建議表示讚賞。

在此先感謝。

+1

您是否意識到市場上有無數的工具可以爲您進行模式比較,並創建同步腳本來更新目標,使其與源代碼相等? –

回答

1
select table_name, column_name, 
column_definition = data_type + isnull('(' + convert(varchar, character_maximum_length) + ')', '') 
from information_schema.columns