我正在改变表以添加外键如下:
ALTER TABLE [MS_Test].[dbo].[Studies]
ADD CONSTRAINT F_Id
FOREIGN KEY (Id) REFERENCES [M_Test].[dbo].[MS](Id);
我收到以下错误:
Ms 1778,Level 16,State 0,Line 2
列'MS_Test.dbo.FM.Id'与引用外键'F_Id'中的列'Studies.Id'的数据类型不同。Msg 1750,Level 16,State 0,Line 2
无法创建约束或索引。查看以前的错误。
我已经在我的表中存储了大量数据,因此我不能只删除表并再次创建它。
答案 0 :(得分:0)
SQL具有以下命令:
ALTER TABLE [table] ALTER COLUMN [column] SET DATA TYPE [new data type]
修改问题后,您似乎需要添加新列,而不是更改现有列。
尝试这样的事情:
ALTER TABLE [MS_Test].[dbo].[Studies]
ADD COLUMN MS_id {your [MS_Test].[dbo].[MS].Id column type};
ALTER TABLE [MS_Test].[dbo].[Studies]
ADD CONSTRAINT F_Id
FOREIGN KEY (MS_id) REFERENCES [M_Test].[dbo].[MS](Id);