求一触发器

wang520d 2008-08-27 03:25:02
求一触发器
条件 1、该触发器作用的表名为动态生成的表(就是ON关键字后面跟的表名) 规则:用字符串 ‘CTI_’+当前年份+‘_’+当前月份(两位);(这样做是因为我这个触发器要做到任务计划里面去)
如当前年月的触发器

SQL codeCREATE TRIGGER [dbo].[T_LeaguerInfos_Log]
ON CTI_2008_08 -- CTI_ YEAR(GETDATE()) _ MONTH(GETDATE())这个名字部分怎么弄?


2、该触发器同步2个数据库中的2个表;如:A库中有表CTI_2008_08对该表建立触发器后,只要该表有数据插入就把该数据插入到B库中的CTI_Missing表中(2表结构可以默认相同)
如:

MustID callID name username tel
1 1 王某 js001 13141250137


该问题已经开了一帖 由于本人问题描述不清楚 故再开一帖 另一帖的地址:(在线结贴)
http://topic.csdn.net/u/20080827/13/34f1a85d-6d7d-4bcb-90e7-33d60e9cbf9f.html?seed=1367376068


...全文
109 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaJiaBing 2008-08-27
  • 打赏
  • 举报
回复

create trigger trg_Test on a
for insert
as
insert into b select * from a not exit(select * from b )
wgzaaa 2008-08-27
  • 打赏
  • 举报
回复
这就比较麻烦了,系统表不让建触发器。用job又浪费,找找建表时是否还有记录信息的有,在这个记录表里建触发器
wang520d 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wgzaaa 的回复:]
你没有前台的应用程序吗?前台应用程序调用建表的语句里加入建触发器的语句就可以了,而且可以考虑不用动态的。
[/Quote]

帮忙再弄个触发器啊 哈哈。。。。
wang520d 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wgzaaa 的回复:]
你没有前台的应用程序吗?前台应用程序调用建表的语句里加入建触发器的语句就可以了,而且可以考虑不用动态的。
[/Quote]
因为A库是另外一家公司的,所以他们什么时候建表我也不知道,我也没办法让他们改代码。。。。。
wang520d 2008-08-27
  • 打赏
  • 举报
回复
求一触发器

条件:当数据库中建立一个表名为下面触发器中要作用的表时就开始执行该触发器

例子:
假如A库中建立了表CTI_2008_08,这个触发器就会触发,去执行下面这个触发器;

if object_id('[dbo].[T_LeaguerInfos_Log]') is null
begin
declare @a varchar(500)
select @a=stuff(convert(varchar(7),getdate(),120),5,1,'_')
exec ('create trigger [dbo].[T_LeaguerInfos_Log] on CTI_'+@a+' for insert as
insert B..CTI_Missing select * from inserted ')
end
wangxuelid 2008-08-27
  • 打赏
  • 举报
回复
jl
wgzaaa 2008-08-27
  • 打赏
  • 举报
回复
你没有前台的应用程序吗?前台应用程序调用建表的语句里加入建触发器的语句就可以了,而且可以考虑不用动态的。
wang520d 2008-08-27
  • 打赏
  • 举报
回复
换句话说SQL中有没有捕捉创建表的事件?

因为我实际中不知道什么时候A库中创建了表
wang520d 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wgzaaa 的回复:]
if object_id('[dbo].[T_LeaguerInfos_Log]') is null
begin
declare @a varchar(500)
select @a=stuff(convert(varchar(7),getdate(),120),5,1,'_')
exec ('create trigger [dbo].[T_LeaguerInfos_Log] on CTI_'+@a+' for insert as
insert B..CTI_Missing select * from inserted ')
end
[/Quote]
上面这位仁兄的这段语句能不能放到当A库中新建表CTI_'+@a+'时开始执行?????数据库有这样的功能吗?
wgzaaa 2008-08-27
  • 打赏
  • 举报
回复
if object_id('[dbo].[T_LeaguerInfos_Log]') is null
begin
declare @a varchar(500)
select @a=stuff(convert(varchar(7),getdate(),120),5,1,'_')
exec ('create trigger [dbo].[T_LeaguerInfos_Log] on CTI_'+@a+' for insert as
insert B..CTI_Missing select * from inserted ')
end
wgzaaa 2008-08-27
  • 打赏
  • 举报
回复
看不到答案可以点管理菜单-->生成帖子
wang520d 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wgzaaa 的回复:]
真有钱,再路过
[/Quote]

别都路过啊。
wang520d 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyflystone 的回复:]
真有钱,
在另一帖已经回复
[/Quote]

没看到你回复啊 ?你就问了个 同步方向?
wgzaaa 2008-08-27
  • 打赏
  • 举报
回复
真有钱,再路过
-狙击手- 2008-08-27
  • 打赏
  • 举报
回复
真有钱,
在另一帖已经回复

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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