以下是我当前使用的代码。但有报错,应该是在exec 中访问不了deleted表。
应该如何来解决这个问题呦,请大家帮帮忙,在线等!CREATE TRIGGER [IHandle_D] ON [dbo].[InfoHandle]
FOR DELETE
AS
Declare @strTableName as varchar(50)
select @strTableName=HandleItem from QInfoHandle
where HandleID = (select IHandleType from Deleted)Declare @strSQL as varchar(5000)
select @strSQL = 'delete from '+@strTableName +' where HandleID in (select IHandleID from Deleted)'
exec(@strSQL)
应该如何来解决这个问题呦,请大家帮帮忙,在线等!CREATE TRIGGER [IHandle_D] ON [dbo].[InfoHandle]
FOR DELETE
AS
Declare @strTableName as varchar(50)
select @strTableName=HandleItem from QInfoHandle
where HandleID = (select IHandleType from Deleted)Declare @strSQL as varchar(5000)
select @strSQL = 'delete from '+@strTableName +' where HandleID in (select IHandleID from Deleted)'
exec(@strSQL)
where HandleID = (select IHandleType from Deleted)
这条语句是否只返回一条记录,如果是,加一条
print @strSQL
语句,看结果是否正确
我现在想解决的是下面语句出错Declare @strSQL as varchar(5000)
select @strSQL = 'delete from '+@strTableName +' where HandleID in (select IHandleID from Deleted)'
exec(@strSQL)问题:在exec中怎么才能访问到deleted表。或者大家提供别的解决办法!
FOR DELETE
AS
create table #a (IHandleID int)
insert #a select IHandleID from deletedDeclare @strTableName as varchar(255)
select @strTableName=HandleItem from QInfoHandle
where HandleID in (select IHandleType from Deleted)Declare @strSQL as varchar(5000)
select @strSQL = 'delete from '+@strTableName +' where HandleID in (select IHandleID from #a)'
exec(@strSQL)