注册 登录
编程论坛 SQL Server论坛

我该怎样创建触发器?

xzqzhazha 发布于 2013-03-24 22:03, 836 次点击
A表:
    字段:a,b,c,d
B表:
    字段:e,b,c,f  (b,c为A表的外键)
question1:怎么样在A表创建触发器,使A表的b,c字段更新时触发B表对应的b,c字段更新,如A表b字段原本为aa,更新为AA,B表b字段也由原本的aa,更新为AA
question2:使用sqlserver2008创建触发器时总是显示“transact-SQL intellisense当前不支持create trigger”怎么解决
question3:update触发器触发的时候报错:deleted无效,例如:
create trigger tu_userName
on userInfo
for update
as
declare @beforeUName varchar(8)
declare @afterUName varchar(8)
if update(userName)
begin
    select @beforeUName=userName from deleted
    select @afterUName=userName from inserted
    update borrowInfo set userName=@afterUName where userName=@beforeUName
end
go
执行的时候是正确的,但是触发的时候就报错:对象名‘deleted’无效

   
3 回复
#2
party6202013-03-25 09:43
answer1:
程序代码:
if exists(select * from sys.objects where name='trg_update')
drop trigger trg_update
go
create trigger trg_update
on a表
after update
as
update b表 set b表.b=inserted.b and b表.c=inserted.c from b表,a表,inserted where b.表.b=a表.b and b表.c=a表.c
你试一下
#3
xzqzhazha2013-03-25 22:38
谢谢、问题我解决了、是因为创建了外键的原因...
#4
xiaolee2013-04-08 17:21
+1
1