2015-06-08 217 views
0

我需要在先前存在的表上刪除唯一約束並創建一個新的唯一約束,該約束將包含額外的列。我可以使用約束的名稱來刪除它嗎?或者唯一約束的名稱將根據數據源更改。我需要在同一個數據庫的多個實例上執行腳本(例如,dev,test,prod)刪除唯一約束

+0

您需要確保您的約束名稱在所有實例中都是相同的。否則,在約束名稱不同的情況下,每次切換實例時都需要運行腳本'ALTER TABLE yourtable DROP CONSTRAINT uc_example'替換'uc_example'。 – FutbolFan

+0

這取決於......你是否在創建它時命名了約束條件?如果你沒有給它命名,那麼每個實例的名稱都會有所不同。 –

+0

明白了。感謝所有的迴應! – InsaneKarma

回答

0

是的,您可以使用約束的名稱,前提是您先前已刪除並且它是一個命名的約束。

+0

如何判斷它是否爲命名約束? – InsaneKarma

+0

查詢定義約束條件的sql系統表並檢查約束名稱 SELECT * FROM SYSKEYCST WHERE(TABLE_SCHEMA,TABLE_NAME)= ('SCHEMA','TABLE') –