不使用检查约束条件修改列长度

3
我想使用以下代码更改我的列长度:
ALTER TABLE mytable ALTER COLUMN mycolumn VARCHAR (20)

但是当我运行上述查询时,出现以下错误:

对象'FK_field'依赖于列'mycolumn'

我使用了
ALTER TABLE mytable NOCHECK CONSTRAINT FK_field 

但是它仍然无法工作。那么,如何在不检查约束条件的情况下更改列的长度?谢谢您的帮助。

1
如果所涉及的列被外键约束引用,您首先需要删除该约束。您还需要更改引用列的长度,然后重新创建外键约束。 - Raj
1个回答

2

删除约束:

ALTER TABLE mytable DROP CONSTRAINT [FK_field]

更改列的长度:

ALTER TABLE mytable ALTER COLUMN mycolumn VARCHAR (20)

重新创建约束条件:
ALTER TABLE mytable ADD FOREIGN KEY (FK_field) 
    REFERENCES ....

1
并不完整。引用列的长度/数据类型也需要更改以匹配所引用的列。 - Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接