[英]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.