create trigger tr_employee
on employee
for insert ,update,delete
asdelete tonline
from deleted
where deleted.state=1
and deleted.userid=tonline.useridinsert tonline
select userid,username
from inserted i
where not exists (
select 1 from tonline
where userid=i.userid
)go
on employee
for insert ,update,delete
asdelete tonline
from deleted
where deleted.state=1
and deleted.userid=tonline.useridinsert tonline
select userid,username
from inserted i
where not exists (
select 1 from tonline
where userid=i.userid
)go
解决方案 »
- Excel导入SQL,OLEDB4.0为空
- 请教为什么sql2005没有导入导出功能?
- 求教一个SQL语句,insert into table1 select * from table2
- SQL SERVER 2000P配置服务器错误
- 请问一个问题,就是如何用sql语句编号的问题,看谁有更好的办法~
- 两个用户同时更新一张表里的两条记录但顺序不同会不会死锁?
- 急急!!SQL的分组统计问题,请高手进来指点!
- 急盼高手赐教,MS-SQL Server在98下能否正常运行?
- 各位高手,请问在sql中如何用日志文件恢复数据??急用,多谢了!!!
- 求教:检索数据库的数据生成xml遇见的问题(应该是很常见的),先谢了!!!
- 数据库分页问题,很急!各位帮忙了。
- mm请教一个悬了1年的SQL语句,高手救命?
on employee
for insert ,update,delete
asdelete tonline
from deleted
where deleted.state=1
and deleted.userid=tonline.useridinsert tonline
select userid,username
from inserted i
where state=1
and not exists (
select 1 from tonline
where userid=i.userid
)go
on employee
for insert,update
as
insert into tonline select userid,username from inserted
go
create trigger tri_employee
on employee
for delete,update
as
delete tonline from deleted where tonline.userid=deleted.userid and deleted.state=1
go
可以把两个存储过程和在一起的。可是这样比较复杂。
如果是insert操作的话,那么逻辑表deleted 存在吗???如果它不存在,系统会终止触发器的执行的。
写在一起事没有问题的
分开写就必须写三个,两个都有update是不行的,只能触发一个
on employee
for insert
asinsert tonline
select userid,username
from inserted i
where not exists (
select 1 from tonline
where userid=i.userid
)delete tonline
from inserted
where inserted.state=0
and inserted.userid=tonline.useridgo
for insert,update
as
insert tonline select userid,username from inserted
where inserted.state=1delete tonline from updated where update.state=0
updated?