这个触发器执行不了,请指点下?
create trigger [a421_inseret] on [dbo].[a421] for insert
as
declare @a4214 int,@a4212 int
set @a4214=(select a4214 from inserted)
set @a4212=(select a4212 from inserted)
if (@a4214 is null or @a4214 ='')
BEGIN
update a01 set e0101=c.4213 from (select a421.bdyy,a421.qysj,a421.a4211,a421.a4212,a421.a4213,a421.a4214,a421.TransactionID,a0188,RY.signtime from a421,RY
where a421.TransactionID=RY.TransactionID)c,inserted,a01
where a01.a0188=c.a0188
end
if (@a4212 is null or @a4212 ='')
BEGIN
update a01 set dept_code=c.4211 from (select a421.bdyy,a421.qysj,a421.a4211,a421.a4212,a421.a4213,a421.a4214,a421.TransactionID,a0188 ,RY.signtime from a421,dbo.RY
where a421.TransactionID=RY.TransactionID) c,inserted,a01 where a01.a0188=c.a0188
end
create trigger [a421_inseret] on [dbo].[a421] for insert
as
declare @a4214 int,@a4212 int
set @a4214=(select a4214 from inserted)
set @a4212=(select a4212 from inserted)
if (@a4214 is null or @a4214 ='')
BEGIN
update a01 set e0101=c.4213 from (select a421.bdyy,a421.qysj,a421.a4211,a421.a4212,a421.a4213,a421.a4214,a421.TransactionID,a0188,RY.signtime from a421,RY
where a421.TransactionID=RY.TransactionID)c,inserted,a01
where a01.a0188=c.a0188
end
if (@a4212 is null or @a4212 ='')
BEGIN
update a01 set dept_code=c.4211 from (select a421.bdyy,a421.qysj,a421.a4211,a421.a4212,a421.a4213,a421.a4214,a421.TransactionID,a0188 ,RY.signtime from a421,dbo.RY
where a421.TransactionID=RY.TransactionID) c,inserted,a01 where a01.a0188=c.a0188
end
c.4211
是不是少了個a ?
where a421.TransactionID=RY.TransactionID)c,inserted,a01
where a01.a0188=c.a0188 你这块的子查询是c,inserted,a01 ,但是连接只用到a01.a0188=c.a0188 ,和inserted的连接呢?另外
set @a4214=(select a4214 from inserted) 也不合理,如果inserted里面有多个数据的话,你的@a4214只能取最后一个值
create trigger [a421_inseret] on [dbo].[a421] for insert
as
-- declare @a4214 int,@a4212 int
-- set @a4214=(select a4214 from inserted)
-- set @a4212=(select a4212 from inserted)
-- if (@a4214 is null or @a4214 ='')
BEGIN
update a01 set e0101=b.a4213
from a01 a
inner join RY c on a.a0188=c.a0188
inner join a421 b on b.TransactionID=c.TransactionID
inner join inserted d on b.主键=d.主键
where isnull(d.a4214,'')=''update a01 set dept_code=b.a4211
from a01 a
inner join RY c on a.a0188=c.a0188
inner join a421 b on b.TransactionID=c.TransactionID
inner join inserted d on b.主键=d.主键
where isnull(d.a4212,'')=''end
set @a4212=(select a4212 from inserted)
这两句的问题上面已经说过,后面加一个where吧 if (@a4214 is null or @a4214 ='')
if (@a4212 is null or @a4212 ='')
这个变量是int型的,楼主你这样判断是不行的把出错的语句贴出来,大家也好帮你看