2016-12-22 54 views
0

有沒有辦法從主鍵中刪除一列?我不是在談論Alter主鍵約束。我只想使用T-SQL腳本從主鍵釋放一列。我可以通過右鍵單擊列名來修改列。但不能使用T-SQL Script來完成相同的任務。有沒有想法如何完成這項任務?如何使用T-SQL腳本更改SQL Server中的主鍵列?

+1

刪除並重新創建'Index'是唯一可能的方式 –

+0

這是不是正確的方式?因爲我可以使用管理工作室刪除主鍵。 –

+0

也許這個工作室正在根據@Prdp提到的內容做些什麼。 –

回答

0

您可以使用T-SQL完成此操作。假設你的表名是branch

查詢

SELECT name 
FROM sys.key_constraints 
WHERE [type] = 'PK' 
    AND [parent_object_id] = Object_id('dbo.branch'); 

結果

'PK_Branch' 

現在,我們使用該結果在另一個查詢到:

所以首先我們將使用下面的查詢獲取主鍵約束的名字放下主鍵。該查詢將從branch表中刪除主鍵。

查詢

ALTER TABLE dbo.branch 
DROP CONSTRAINT PK_Branch 
+0

只要**沒有其他表**引用'dbo.branch',就可以工作。如果您有引用它的表(通過外鍵),那麼您必須首先刪除所有引用外鍵,放棄主鍵並重新創建它,然後重新創建所有引用外鍵的引用。 –

+0

是的,你是對的! –

0

即使使用Management Studio,刪除並重新創建Index也是唯一的方法。

從Management Studio中,右鍵單擊一個表,選擇「設計」並查看「接口」。在進行一些更改之後,在保存更改之前,右鍵單擊表格設計並選擇「生成更改腳本...」,您將看到「管理工作室」在「幕後」執行的操作。 它實際上是放置表,使用新的更改重新創建它並將數據添加回表中。