求一sql语句 急急急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:15:22
那位高人 给整个SQL 语句:实现内容 如:我数据表A中有一字段:B 是bit类型 如:B1=0,B2=0 B3=1 如果改动 B1=1的话 别的改成0 B2=0 B3=0
我的表内主键是ID 字段:上边的只是例子:我的字段B不止是那几条 还有好多条:主要就是字段B是BIT 类型 但只有一个的值为“1”,如果我把别的改成了“1”;那么原先值是“1”的字段自动变为“0”就只不管改动那个只能确保B字段中只能有一个值是1别的是0

创建一个触发器,不过,你写B1=0是什么意思?
假设你的A表里的主键是ID,B1就是ID=1时B的值好了。

以下是只改ID=1时B的值为1,其它改成0,也就是说如果把你说的B2改为1,不会改其它的B的值。

create trigger tu_A for update on A
as
begin
if update( B)
begin
if exists( select 1 from inserted where id =1 and B = 1)
update A set B = 0 where id <> 1
end
end

在A表上建个触发器
CREATE TRIGGER uptb1 ON A
FOR UPDATE
AS
SET NOCOUNT ON

IF EXISTS(SELECT 1 FROM inserted where b1=1)
begin
update A set b2=0,b3=0 where b1=1
end