[英]How i can modify the Parent table for my Sql server 2008 r2 FK
我的表內有FK,但我想修改FK的父表。 那么是否有可以實現此目的的alter命令? 或者我需要刪除FK並創建一個新的? 謝謝
將此添加到您的PK中,它將自動為您更新所有FK:
ON UPDATE CASCADE
有關完整的詳細信息,您可以閱讀本文 。
編輯根據您的評論,如果要更改PK數據類型,則取決於更改:
要修改數據類型,請使用ALTER
命令,語法為:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
例子:
ALTER TABLE table_name
ALTER COLUMN id NUMBER(10,2);
ALTER TABLE table_name
ALTER COLUMN id VARCHAR(20);
有關完整的詳細信息,您可以閱讀本文 。
看起來您在尋找alter
語句,但是由於您沒有確切提及要修改的內容; 我假設您要更改列數據類型的大小。 您可以執行以下操作(示例;例如,您要將大小從10更改為15)
alter table sample3
alter column name varchar(15)
編輯:
在這種情況下,這就是您應該做的。 您需要刪除現有約束並重新創建約束以指向TableC
alter table TableA
drop constraint your_FK_constraint_name
alter table TableA
add constraint constraint_name
FOREIGN KEY (column_name) references TableC(some other column name)
一個例子:
alter table sample2
drop constraint FK__sample2__realnam__09DE7BCC
alter table sample2
add constraint FK__sample2__realnam
FOREIGN KEY (realname) references sample1(name)
基於此評論,“現在我在TableA中的當前FK引用了另一個表主鍵TableB。但是我需要修改當前FK以引用tableC而不是tableB ...這是我需要的(修改父表我的FK)–“
父表是TableB。 對該表無需執行任何操作。
在TableA上,您必須:
以該順序。
編輯從這里開始
這是語法的鏈接,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.