我们可以在SQL服务器中编写外键时使用CAST函数

时间:2015-08-19 11:25:27

标签: sql-server foreign-keys

我试过这样做但失败了。

ALTER table emp ADD CONSTRAINT FK_Dept  
FOREIGN KEY (dept) REFERENCES dept (CAST (deptid) as INT)

我遇到了这种情况,因为emp表中的Deptid是dept表中的char和int

2 个答案:

答案 0 :(得分:0)

不,你不能这样做。数据类型必须在约束中涉及的键之间匹配。正确的操作是纠正emp table中的数据类型。

如果dept表的emp列中的数据是作为字符存储的整数,并且匹配dept表中的数据(必须使约束起作用)你应该能够改变表格来改变类型,然后像这样添加约束:

alter table emp alter column dept int;
alter table emp add constraint FK_Dept foreign key (dept) references dept (deptid);

答案 1 :(得分:0)

你想要做的事情是不可能的。

我认为你应该考虑一下: - 重新输入列或 - 将转换后的值插入列

你不能用Views来做,因为你不能引用它们!

希望能帮到你