日期:2014-05-18  浏览次数:22088 次

sqlserver 2008 触发器,对象名 'dbo.inserted' 无效???
建了一个触发器
if exists (select 1
  from sysobjects
  where id = object_id('T_accountingsubject')
  and type = 'TR')
  drop trigger T_accountingsubject
go


if exists(select 1 from inserted) and not exists(select 1 from deleted)
begin
  update accountingsubjects set isend=0 where id in(select parentid from inserted)
end
go

执行时提示
消息 208,级别 16,状态 1,第 3 行
对象名 'dbo.inserted' 无效。


这是怎么回事,难道2008没了inserted 和deleted表?


------解决方案--------------------
SQL code

if exists (select 1
  from sysobjects
  where id = object_id('T_accountingsubject')
  and type = 'TR')
  drop trigger T_accountingsubject
go
create trigger T_accountingsubject on 表名
for/after/instead of insert
as
if exists(select 1 from inserted) and not exists(select 1 from deleted)
begin
  update accountingsubjects set isend=0 where id in(select parentid from inserted)
end
go

更正如上