2013-08-26 80 views
0

我需要修改它被認爲是通過語句來完成一個表列的數據類型:SQL Server 2008中修改表列的數據類型

ALTER TABLE QUANTITIES_NEW ALTER COLUMN VERSION_NEW VARCHAR(12); 

不幸的是,我去一個錯誤(德國)

Meldung 5074, Ebene 16, Status 1, Zeile 1 
Das Objekt-Objekt 'UQ_QUANTITIES_NAME_VERSION' ist vom Spalte-Objekt 'VERSION_NEW' abhängig. 
Meldung 4922, Ebene 16, Status 9, Zeile 1 
Fehler bei ALTER TABLE ALTER COLUMN VERSION_NEW, da mindestens ein Objekt auf diese Spalte zugreift. 

可以翻譯成:

The object-object 'UQ_QUANTITIES_NAME_VERSION' depends on the column object 'VERSION_NEW'. 
Failure at ALTER TABLE ALTER COLUMN VERSION_NEW, because this column is accessed by one or more columns. 

我認爲唯一約束沒有被禁用。因此,我執行了聲明

ALTER TABLE QUANTITIES NOCHECK CONSTRAINT ALL 
; 

。但仍然是同樣的錯誤。

回答

1

刪除相關的CONSTRAINT。如果你爆炸你的表,在章節限制中,你會發現一個與你的領域相關的約束。算了吧。您可以更改字段類型後

+0

是否真的沒有辦法禁用約束,然後enabale它。因爲如果我刪除它,我必須再次添加它。 –

+1

IHMO,沒辦法。因爲在約束中存儲了一些字段信息,例如DEFAULT值。 –

+0

由於DDL語句是由程序自動生成的,因此我需要知道有關UniqueConstraint(例如列名稱)的詳細信息,因爲我想獲得程序生成的相同約束。有沒有查詢來檢索該信息?提前致謝。 –

相關問題