【发布时间】:2018-01-12 07:09:03
【问题描述】:
我正在更改表以添加外键,如下所示:
ALTER TABLE [MS_Test].[dbo].[Studies]
ADD CONSTRAINT F_Id
FOREIGN KEY (Id) REFERENCES [M_Test].[dbo].[MS](Id);
我收到以下错误:
消息 1778,第 16 级,状态 0,第 2 行
列“MS_Test.dbo.FM.Id”与在外键“F_Id”中引用列“Studies.Id”的数据类型不同。消息 1750,第 16 级,状态 0,第 2 行
无法创建约束或索引。查看以前的错误。
我的表中已经存储了很多数据,所以我不能只是删除表并重新创建它。
【问题讨论】:
-
错误不是很清楚吗?
Id的数据类型必须与[M_Test].[dbo].[MS](Id)的数据类型匹配。 -
我不能只更改数据类型,因为它也是另一个表中的外键
-
我不明白一个表的
id如何引用另一个表的id? -
所涉及的数据类型是什么?
-
Studies 表的 PK 是唯一标识符。 MS 表的 Id 为 PK,它是一个 int,我需要在 Studies 表中添加“Id”列
标签: sql-server foreign-keys constraints alter-table