2016-10-28 51 views
0

我試圖改變版本列轉換爲十進制(3,1),但它給這個錯誤阿爾特列是一個複合鍵-SQL服務器

對象「PK__SlideVer__E0872D0E86F75C91」是依賴於列「版本」。

fkSlideId是外國key.See圖像

enter image description here

+1

刪除主鍵並改變該列。然後重新創建它。 – Buddi

+0

我試圖放棄主鍵:改變表刪除主鍵(col1,col2),但它並不工作 –

+0

你有什麼錯誤?像以前一樣? – Buddi

回答

0

我剛剛向您展示了一個示例示例。

CREATE TABLE TAR1 
    (
    ID INT NOT NULL, 
    NAME VARCHAR(20) NOT NULL 
    ) 



     ALTER TABLE TAR1 ADD CONSTRAINT PK_1 PRIMARY KEY(ID,NAME) 

     ALTER TABLE TAR1 ALTER COLUMN NAME VARCHAR(50) -- will throw an error 

     ALTER TABLE TAR1 DROP CONSTRAINT PK_1 

     ALTER TABLE TAR1 ALTER COLUMN NAME VARCHAR(50) not null --You must specify not null 
     ALTER TABLE TAR1 ADD CONSTRAINT PK_1 PRIMARY KEY(ID,NAME) 
+0

我不能創建一個新的表需要更新當前的一個 –

+0

我創建此表時沒有做出約束 –

+0

@SyedKamranAhmed對於那個存在的主鍵,然後用你需要的數據類型改變列並且必須指定非空。經過上述步驟後,您需要再次創建Pk。爲了更好的理解,你可以發佈你的主鍵,外鍵嗎? – Buddi

0

由於@Buddi指出,你需要改變你列前先刪除主鍵和其他任何依賴的對象。

ALTER TABLE SlideVersion 
DROP CONSTRAINT PK__SlideVer__E0872D0E86F75C91