我想将主键的dataType从varchar
更改为bigint
。
我尝试了以下命令。
ALTER TABLE dbo.Company
ALTER COLUMN Id bigint
但它不起作用,因为此列被引用为其他表中的外键。
如何在不通过Sql Query丢失表数据的情况下更改其类型?
答案 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);