Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果车辆没有空调,则不能配备电动锁_Sql_Sql Server_Tsql - Fatal编程技术网

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 )