主表 存放索引信息
表1 中存放明细记录
表2 中存放明细记录
表。。中存放明细记录
表n 中存放明细记录
postlog --主表
recordNum datatype
1 table1
2 table2
....
4 table4现在要用一个触发器实现,在删除主表记录的同时,删除对应明细表中的详细记录。下面是我写的,但不行,好像exec用的不对,触发器不支持动态的?
CREATE TRIGGER delDetailRecord
ON postlog
FOR DELETE
AS
declare @tableName nvarchar(16)
declare @postSerial int
declare @sqlstr nvarchar(1024)select @tableName=datatype from deleted
select @postSerial = recordNum from deleted--set @sqlstr =N' delete from ' +@tableName + N' where updatetimecode = '+ CAST(@postSerial AS VARCHAR(16))
--exec @sqlstr
表1 中存放明细记录
表2 中存放明细记录
表。。中存放明细记录
表n 中存放明细记录
postlog --主表
recordNum datatype
1 table1
2 table2
....
4 table4现在要用一个触发器实现,在删除主表记录的同时,删除对应明细表中的详细记录。下面是我写的,但不行,好像exec用的不对,触发器不支持动态的?
CREATE TRIGGER delDetailRecord
ON postlog
FOR DELETE
AS
declare @tableName nvarchar(16)
declare @postSerial int
declare @sqlstr nvarchar(1024)select @tableName=datatype from deleted
select @postSerial = recordNum from deleted--set @sqlstr =N' delete from ' +@tableName + N' where updatetimecode = '+ CAST(@postSerial AS VARCHAR(16))
--exec @sqlstr
解决方案 »
- winform中DataGridView全选右键删除的问题
- C#Random的疑问
- WinForm的DataGridView下拉滚动条无法拉动!
- 有人研究过C#存取Access2007附件类型的字段吗?
- C#中 String其实也是一个类,那么有实现String类的文件吗?
- VS2005的dataGridView自定义列问题
- 当listview中显示图片时,如何控制每行的数量
- datatable写入txt文本问题
- <font size=18><b>是不是c#写的webform程序在运行时,要在服务器上安装ie6</b></font>
- 几个小的问题?
- 急求中兴笔试题目
- 消息处理不能完成是怎么回事?
然后在触发器中调用存储过程就可以了。
ON postlog
FOR DELETE
AS
declare @tableName nvarchar(16)
declare @postSerial int
declare @sqlstr nvarchar(1024) select @tableName=datatype from deleted
select @postSerial = recordNum from deleted delete from postlog where updatetimecode = @postSerial
直接写SQL语句或者调用存储过程就可以了,搞这么复杂干啥
insert into postlog select 1,'table1'
insert into postlog select 2,'table2'
insert into postlog select 4,'table4'declare @tableName nvarchar(16)
declare @postSerial int
declare @sqlstr varchar(8000)
set @sqlstr=''
select @sqlstr=@sqlstr+' delete from '+tableName+' where postSerial ='+ ltrim(postSerial)
from postlog
print @sqlstr delete from table1 where postSerial =1
delete from table2 where postSerial =2
delete from table4 where postSerial =4?自己改改
hehe ,主要为学习,to wzy_love_sly ,表是动态的,用户随时可以增加。你的代码具体还没看太懂。
将3个参数@tableName、@postSerial、@sqlstr 传给存储过程。
然后在触发器中调用存储过程就可以了。 想法不错啊,但怎么实现?有案例或相关网址吗?将3个参数@tableName、@postSerial、@sqlstr 传给存储过程。 和 在触发器中调用,两个怎么衔接啊?