www.3112.net > sql sErvEr 2005中 多个条件删除触发器代码如何写?

sql sErvEr 2005中 多个条件删除触发器代码如何写?

---创建测试表: Create Table MyTest( id int identity(1,1) not null primary key, [name] varchar(100) null ) --创建触发器: CREATE TRIGGER trigtest--创建触发器trigtest ON mytest--在表mytest上建 for INSERT,DELETE,UPDATE--为插入,删除,修

Create TRIGGER 触发器名Trigger ON 触发的表名FOR UPDATE as declare @变量名 varchar(10) // 定义变量来储存原表的数据 select @变量=触发的表的列名from inserted; if update(bus) // 当更新触发表的这个字段时begin update test set bus=@bus // 更新你要设置的另外的表 where name=@name; // 更新条件 end 这是一个updata 触发器 还有 insert delete

应当说是你删除多少行,逻辑表deleted中就有多少行数据,因为触发器是只认操作,不管你操作多少行的.说明是你的触发器处理脚本编写的有问题,尝试在触发器的处理代码中从逻辑表中读取所有删除过的记录的id,然后使用批量删除的语句删除从表中对应的记录.

根据表A的条件创建触发器对表B进行相关操作即可,应该比较容易的,既然你已经解决了,就不再献丑贴代码了, ^_^.

其实你可以使用级联删除啊假如两个表通过id关联create trigger tri_deleteon table1after deleteasbegin delete from table2 where table2.id in( select id from deleted)end

在左侧导航栏中打开某一张表前面的 &quot氦份度莓道逢权抚护;+"号.会看到"触发器" 右键,新建.搞定.

你大概弄错了,那个需要建立的不是触发器,而是check约束,比如约束sex只能为男、女 create table customer( customerId char(8) primary key,--主键 name varchar2(30) not null,--不能为空 address varchar2(50), email varchar2(30) unique,--唯一约束,不能重复 sex char(2) default '男' check (sex in ('男','女')), cardId char(18) );

delete from 表名 where ID between 3 and 7000

--创建测试表create table t_a(id int,name varchar(10));create table t_b(id int,name varchar(10));--测试数据insert into t_a(id,name) values (1,'a');--创建 for delete 触发器create trigger trg_t_a_1 on t_afor deleteasbegininsert into t_b select id,name from deleted;end--从t_a中删除一条数据delete from t_a where id=1;

你可以直接用语句写呀,如:create trigger [trigger name] on [dbo].[table name] for insert, update, delete as或者你用sql server的企业管理器,选中要建立触发器的表,点后键,然后选择管理触发器,这时会弹出一个编辑窗口,然后自己编写触发器就ok了.

网站地图

All rights reserved Powered by www.3112.net

copyright ©right 2010-2021。
www.3112.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com