2011-05-24 90 views

回答

3

這將讓你在數據庫中的所有約束,你可以通過你所需要的過濾它:

我想你可能還需要看看任何指標,統計等也可能阻止你丟掉專欄。

+0

你可以讓我知道,用於生成所有約束創建腳本的確切腳本? – 2011-05-24 19:07:59

1

這可以從SQL Server Management Studio輕鬆完成。在數據庫上

右鍵單擊並轉到任務生成腳本...

這將產生一個腳本生成嚮導,它將爲您選擇的任何模式構造生成DROP和CREATE腳本。

選擇數據庫

確保您選擇腳本拖動到真

選擇表

選擇新建查詢編輯器窗口,然後單擊Finish。

+0

你能讓我知道確切的步驟來生成只有約束,而不是表腳本? – 2011-05-24 19:07:23

+0

工具>選項> sql server對象資源管理器>關閉除約束以外的所有內容>生成它們>將所有內容都恢復回 – Fourth 2011-05-24 19:08:55

+2

使用屏幕上的選項生成創建表腳本,我只需要腳本約束。 – 2011-05-25 07:25:30

1

您可以使用SMO編程這樣的事情,或者更簡單的是隻使用SSMS中的腳本嚮導。在對象資源管理器中轉到數據庫並右鍵單擊它。選擇任務 - >生成腳本(不是「腳本數據庫」)。在嚮導中,您可以確保約束是腳本化的,並刪除其他項目。檢查生成的腳本並確保它能夠滿足您的需求。如果沒有,再次通過嚮導進行必要的調整。

2
SELECT top 1 
    'ALTER TABLE dbo.' + OBJECT_NAME(parent_object_id) + 
    ' ADD CONSTRAINT ' + dc.name + ' DEFAULT(' + definition 
    + ') FOR ' + c.name 
FROM sys.default_constraints dc 
INNER JOIN sys.columns c ON dc.parent_object_id = c.object_id AND dc.parent_column_id = c.column_id 

腳本生成的所有約束

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 

得到數據庫中的所有約束條件,然後在你的桌子過濾