如何在其他表中更改作为外键引用的列的类型?

时间:2017-07-20 10:52:20

标签: sql-server

我想将主键的dataType从varchar更改为bigint

我尝试了以下命令。

ALTER TABLE dbo.Company
ALTER COLUMN Id bigint

但它不起作用,因为此列被引用为其他表中的外键。

如何在不通过Sql Query丢失表数据的情况下更改其类型?

1 个答案:

答案 0 :(得分:0)

有几个步骤可以实现这一目标。但最重要的是,首先你必须放下钥匙 首先删除主要内容(更改name_of_primary_key,与您的实际相符):

ALTER TABLE dbo.Company DROP CONSTRAINT name_of_primary_key;

更改数据类型(将length替换为您想要的):

alter table table alter column foreign_key_column bigint(length) 

然后从其他表中删除外键(对每个表执行此操作,并使用db中的real替换这两个参数):

ALTER TABLE table DROP FOREIGN KEY foreign_key_column;

现在,您更改了外键列的数据类型(将length替换为您想要的):

alter table table alter column foreign_key_column bigint(length);