2014-10-06 144 views
0

如何实现这个约束?SQL Server 2012约束条件

我有一列LastModifiedBy(数据类型Int)我想限制数据从UserTable.UserId也允许为空。

如何在SQL Server 2012中实现这一点?

谢谢 埃里克

+0

有一些原因并不像外键那么简单? – 2014-10-06 18:09:10

+0

没理由。只是我已经实施了所有使用约束的验证。所以只是想实现这个使用约束。 – 2014-10-06 18:27:29

回答

3

试试这个:

ALTER TABLE [dbo].[yourtable] WITH NOCHECK 
ADD CONSTRAINT [usertable$FK_usertable_1] 
FOREIGN KEY([LastModifiedBy]) REFERENCES [dbo].[UserTable] ([UserId]) 

这个脚本改变添加foreing键类型的约束你的表(你有LastModifiedBy)指向用户表

+0

需要注意的是,如果您使用此操作,则无需先删除子行或将子行中的UserID设置为null,就无法删除UserTable中的行。 – 2014-10-06 18:16:50

+0

@Sean如果你以某种其他方式实现了声明的需求,就像约束或触发器那样,这将是真的...... – 2014-10-06 18:22:21

+0

同意100%。我的意见是为了支持这个答案,并发布,以确保OP实际理解这是根据他们的要求会发生什么。由于不了解这些类型的关系是如何处理的,往往这种事情得到实施并退出。 – 2014-10-06 18:25:26