Sql-Server

在 DROP/Add 列語句中更改鍵(PK、FK)屬性

  • January 15, 2018

我想通過添加一列來更改表格。到目前為止,這裡沒有什麼可看的,但是我想讓這個列成為複合鍵的一部分,即,我現在有一個佈局

table_name( Field_1  datatype PK, Field_2 datatype,....) 

我希望插入的列,比如 Field_k 與現有的單欄位 PK 一起成為 PK 的一部分。

我還沒有找到有關如何執行此操作或是否可能的任何來源。請問有什麼建議嗎?

您需要刪除引用它的 FK,然後刪除 PK 並重新創建它,然後重新創建 FK。這沒有什麼神奇的語法,但是你可以在這裡得到一些關於如何為 FK 生成 drop/create 腳本的想法:

如果我(當然是在不知不覺中)在過程中違反了一些約束,例如,如果我忘記刪除一些引用的表,我會收到警告嗎?只是好奇 SQL 伺服器如何處理完整性/約束違規。

當任何 FK 仍然引用它時,您將無法刪除 PK。當然,您將無法重新創建 FK,除非這些其他表也有一個列可以填充您添加到 PK 的新列。

引用自:https://dba.stackexchange.com/questions/140550