SQL 多表触发

talentxiaoli 2010-07-21 11:12:46
多表触发
就是不管哪个表的数据发生改变都执行同一段 触发代码
思路如下:
create trigger copySync
@tableName = 当前触发的表
if(inserted)
begin
@id=@tableName当前行的第一个字段值(ID值)
insert 远程数据库的 @tableName () select 字段 from @tableName where id= @id
end

如何把这个触发代码完善?
高手指点一下。
...全文
157 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
永生天地 2010-07-24
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 talentxiaoli 的回复:]
没能搞定~~~~~
高手始终是贵手不肯出手。
算了一个一个写吧~
[/Quote]
可以写段代码或者存储过程,为每个表都创建这样的触发器
talentxiaoli 2010-07-24
  • 打赏
  • 举报
回复
没能搞定~~~~~
高手始终是贵手不肯出手。
算了一个一个写吧~
happyer_longlong 2010-07-24
  • 打赏
  • 举报
回复
绝不用触发器 
永生天地 2010-07-24
  • 打赏
  • 举报
回复
随便写的


declare @s varchar(8000),@tbname sysname,@colid sysname
declare cur cursor for select name from sysobjects where type='u'
open cur
fetch cur into @tbname
while @@fetch_status=0
begin
--select @colid=name from syscolumns where colid=1 and id=object_id(@tbname)
set @s='
create trigger tri_'+@tbname+'
on '+@tbname+'
for insert
as
begin
insert 远程数据库.dbtest.dbo.'+@tbname+' select * from inserted
end
'
exec (@s)
fetch cur into @tbname
end
close cur
deallocate cur
zhangsong841 2010-07-21
  • 打赏
  • 举报
回复
建议不要用触发器,会慢的。
如果可行的话,就用事务实现吧 。
talentxiaoli 2010-07-21
  • 打赏
  • 举报
回复
嗯。(修改、删除都要的。只是这里举个例而已)
if(inserted)
begin end
else if(updated)
begin end
else if(deleted)
begin end

现在问题是 如何取得 当前的 table name
又如何取得 当前行的 第一个字段值
在此能否连接远程数据库
bancxc 2010-07-21
  • 打赏
  • 举报
回复
发生改变包括增删改 ??
那就for insert,update,delete
永生天地 2010-07-21
  • 打赏
  • 举报
回复
我这有个例子,包含触发器

[sql server] sql server 链接 MySql 实测经过 (ODBC方式)
http://blog.csdn.net/xys_777/archive/2010/07/14/5733516.aspx
永生天地 2010-07-21
  • 打赏
  • 举报
回复
那得在所有表上都写上同样的触发器

[Quote=引用楼主 talentxiaoli 的回复:]
多表触发
就是不管哪个表的数据发生改变都执行同一段 触发代码
思路如下:
create trigger copySync
@tableName = 当前触发的表
if(inserted)
begin
@id=@tableName当前行的第一个字段值(ID值)
insert 远程数据库的 @tableName () select 字段 from @tableNam……
[/Quote]
zzz1975 2010-07-21
  • 打赏
  • 举报
回复
只有你自己知道,参数需要传进来啊, 肯定要在之前触发,表名以及第一个字段参数啊
talentxiaoli 2010-07-21
  • 打赏
  • 举报
回复
事务的话 不是得整个表的记录重新检测过?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧