列与引用列的数据类型不同

时间:2017-08-04 11:04:55

标签: sql-server foreign-keys constraints alter-table

我正在改变表以添加外键如下:

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
  无法创建约束或索引。查看以前的错误。

我已经在我的表中存储了大量数据,因此我不能只删除表并再次创建它。

1 个答案:

答案 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);