Sql 如果车辆没有空调,则不能配备电动锁
我有一张汽车表 我想添加一个检查约束,以检查车辆是否有空调,然后车辆才能有电源锁Sql 如果车辆没有空调,则不能配备电动锁,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一张汽车表 我想添加一个检查约束,以检查车辆是否有空调,然后车辆才能有电源锁 alter table dbo.Vehicle add constraint vehicle_aircondition_check check(air_conditioning = 1); 如何在此处添加IF条件 IF air_conditioning = 0 THEN 'power_Locks should not be 1' 您可以添加检查约束,如下所示: ALTER
alter table dbo.Vehicle
add constraint vehicle_aircondition_check
check(air_conditioning = 1);
如何在此处添加IF条件
IF
air_conditioning = 0
THEN 'power_Locks should not be 1'
您可以添加检查约束,如下所示:
ALTER TABLE车辆
添加空调约束
检查(
(空调=1,电源锁=1)或
(空调=0,电源锁=0)或
(空调=1,电源锁=0)
)
或者,还有一个选择。谢谢@Ben Thul
ALTER TABLE车辆
添加空调约束
检查(
(空调=1,电源锁=1)或
(电源锁定=0)
)
如果您试图输入错误组合的值,则会出现错误
Msg 547,16级,状态0,第8行INSERT语句冲突
使用检查约束“CK_空调”。冲突发生了
在数据库“db1”中,表“dbo.vehicle”
或
检查(电源锁<空调)
我将做一次计算。如果将字段更改为布尔值,则第一个字段将变为
空调或非电源锁定
。我不知道哪些数据库接受布尔值排序。如果您只想防止一种情况,则不是您的朋友:
not ( air_conditioning = 0 and power_locks = 1 )
@DaleK,你说得对:)更新了我的answer@DaleK,不。他们想设置一个条件,如果空调=0,则电源锁必须为0。@DaleK,我们需要设置和条件:空调=1,电源锁=0,这是一种if-ELSE逻辑,OP正在尝试构建。检查约束中的第二和第三个子句是否可以组合为(power_locks=0)
?@BenThul,谢谢。我已经更新了我的答案。你知道SQL不使用双等于吗?==
请不要使用图像来表示数据、代码或错误。请使用格式化文本。谢谢下次使用
CHECK (power_locks < air_conditioning)
not ( air_conditioning = 0 and power_locks = 1 )