【发布时间】:2021-02-05 09:00:24
【问题描述】:
给定表中的 3 列 tblEmails,
-
email1,nvarchar(50),NULL 不允许 -
email2,nvarchar(50),允许 NULL -
email3,nvarchar(50),允许 NULL
如果值已存在于其他列的 any 中,我如何防止向三列中的 any 插入或更新(非 NULL)值?
我希望通过检查三个表的UNION ALL 是否包含要插入的值来应用CONSTRAINT,但似乎count() 不能在CONSTRAINTs 中使用。
- 任何可通过 SSMS gui 实施的解决方案都是理想的。
- 我浏览了至少十几个 SO 帖子、一些 SE 帖子和在线文章,但找不到解决方案(或我能理解的解决方案)。
【问题讨论】:
-
为什么你的表有
tbl前缀? -
...为什么你的表是非规范化的?如果某人拥有 3 个以上的电子邮件地址怎么办?
-
您说“三张桌子中的任何一张” - 但您只描述了一张桌子。你的意思是说“三列中的任何一个”?代替?
-
什么是“SSMA”工具?您是指“SSMS”吗?
-
我假设他们的意思是 SQL Server 迁移助手 @Dai ,但不知道这对这里有什么帮助。
标签: sql sql-server unique