我的item表里有个字段是记录了这一条记录是从哪一个数据表插入过来的
我想在item表删除记录的时候,连带插入表那一条记录也删掉
触发器我这样写
declare @inno int,@name varchar(20);
select @inno = inno from deleted
select @name = dbenname from deleted
if @inno != 0
begin
delete @name where inno = @inno
end
但却提示
消息 1087,级别 16,状态 1,过程 each_del,第 25 行
必须声明表变量 "@name"。
@name我在上面不是已经声明了吗?
------解决方案--------------------
级联删除,假设你两个表 有唯一标识 ID
create trigger tri_delete
on t1
after delete
as
begin
delete from t2
where t2.id in
(select id from deleted)
end
------解决方案--------------------
declare @inno int,@name varchar(20);
select @inno = inno from deleted
select @name = dbenname from deleted
if @inno != 0
begin
DECLARE @sql varchar(100)
SET @sql = 'delete ' + @name + ' where inno = ' + Convert(varchar(11),@inno)
EXECUTE @sql
end