SQL-Server:将列定义为互斥
发布时间:2020-05-23 09:59:46 所属栏目:MsSql 来源:互联网
导读:我想起了一个有趣的场景:SQL Server中是否有可能定义一个表,以便通过“标准手段”(约束等),我可以确保两个或更多列是相互排斥的? 我的意思是:我可以确保只有一列包含一个值吗? 是的,可以使用CHECK约束: ALTER TABLE YourTableADD CONSTRAINT ConstraintN
|
我想起了一个有趣的场景:SQL Server中是否有可能定义一个表,以便通过“标准手段”(约束等),我可以确保两个或更多列是相互排斥的? 我的意思是:我可以确保只有一列包含一个值吗? 解决方法是的,可以使用CHECK约束:ALTER TABLE YourTable ADD CONSTRAINT ConstraintName CHECK (col1 is null or col2 is null) 根据您的评论,如果许多专栏是排他性的,您可以这样查看: case when col1 is null then 0 else 1 end + case when col2 is null then 0 else 1 end + case when col3 is null then 0 else 1 end + case when col4 is null then 0 else 1 end = 1 这说明四列之一必须包含一个值.如果它们都可以为NULL,只需检查< = 1. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server简单实现数据的日报和月报功能
- tsql – Great Circle Distance公式:T-SQL
- sql server建库、建表、建约束技巧
- 如何在SQLSERVER中快速有条件删除海量数据
- Mac上将brew安装的MySql改用Docker执行操作过程
- ssis – 如何在Foreach文件枚举器上为FileSpec属性设置表达
- sql server:根据计数器和另一个列值生成主键
- tsql – 为什么我会在SQL Server 2008中使用SSIS包而不是其
- t-sql清空表数据的两种方式示例(truncate and delete)
- SQL Server利用sys.sysprocesses检查SqlServer的阻塞和死锁
