Sql server 根据sql server的条件添加值

Sql server 根据sql server的条件添加值,sql-server,triggers,Sql Server,Triggers,我有一张这样的桌子: create table example( id char(1), color varchar, col_binary binary); 我已经有一个存储过程,我希望通过该存储过程返回一种颜色,例如“蓝色”,然后col\u binary列获取值​​1,并使用另一种颜色,如“红色”col_binary取值0。 我想我需要一个扳机 您可以通过添加这样的触发器来实现 Create Trigger [Add_LTD] on Example After Insert As BEGI

我有一张这样的桌子:

create table example(
id char(1),
color varchar,
col_binary binary);
我已经有一个存储过程,我希望通过该存储过程返回一种颜色,例如“蓝色”,然后
col\u binary
列获取值​​1,并使用另一种颜色,如“红色”
col_binary
取值0。
我想我需要一个扳机

您可以通过添加这样的触发器来实现

Create Trigger [Add_LTD] on Example
After Insert As
BEGIN
Update Example set Example.[col_binary]=case when Example.[Color]='Red' then 1 else 0 END from Inserted 
where Example.id=Inserted.id
END;

对不起,你的问题很难理解,你能提高英语水平吗?另外,你是说当你插入时,你想把
col\u binary
变成一个特定的值吗?为什么不建立一个单独的表来存储每种颜色的二进制值,然后你可以加入这个表来得到你的二进制列,或者,添加一个-例如,
ALTER TABLE示例在“蓝色”时添加col_二进制作为大小写颜色,然后在“红色”时添加1,最后添加0结束
请记住,当声明
color varchar
时,列的长度是
1
!您应该始终指定
varchar(10)
的长度,以防止truncation@GarethD感谢您的指导如果不打算独立于颜色更改col_二进制,那么规范化将是一种更好的方法<代码>创建表示例(id char(1),color varchar(20));创建表Color2binary(color varchar(20),COLU binary)