2009.0713

insert 触发器

CREATE TRIGGER [change_view_tDBDes_when_insert] ON [dbo].[tDBDes]
FOR INSERT
AS
declare @db varchar(255)
declare @sql1 nvarchar(4000), @sql2 nvarchar(4000), @sql3 nvarchar(4000), @sql4 nvarchar(4000), @sql5 nvarchar(4000), @sql6 nvarchar(4000), @sql7 nvarchar(4000)
declare @name1 varchar(255), @name_table varchar(255)
set @name1 = (select name1 from inserted)
set @db = substring(@name1,7,len(@name1)-6)
if(substring(@name1,7,1)=3) set @name_table='tAJB_UID'
else set @name_table='tYHXX'
set @sql1='create view v1_'+@db+' as '
set @sql2='create view v2_'+@db+' as '
set @sql3='create view v3_'+@db+' as '
set @sql4='create view v4_'+@db+' as '
set @sql5='create view v5_'+@db+' as '
set @sql6='create view v6_'+@db+' as '
set @sql7='create view v7_'+@db+' as '
if(substring(@db,1,1)=1)
begin
set @sql1=@sql1+'(SELECT a.*,UIDS,YHMC,YHDZ,EMAIL,YHZT,comment,JJLJHM,short_address,convert(char(20),CJSJ,120) CJSJ1,convert(char(20),ZHXGSJ,120) ZHXGSJ1,convert(char(20),ZHCSSJ,120) ZHCSSJ1,'''' reserved1,b.handlePlan as uidHandlepLan '
set @sql1=@sql1+' FROM vYH a,'+@name1+'.dbo.'+@name_table+' b'
set @sql1=@sql1+' WHERE a.UID=b.UID)'
end
else if(substring(@db,1,1)=3)
begin
set @sql1=@sql1+'(SELECT a.*,UIDS,YHMC,YHDZ,EMAIL,YHZT,comment,'''' JJLJHM,short_address,convert(char(20),CJSJ,120) CJSJ1,convert(char(20),ZHXGSJ,120) ZHXGSJ1,convert(char(20),ZHCSSJ,120) ZHCSSJ1,c.reserved1,b.handlePlan as uidHandlepLan, d.PlanDescription as uidPlanDescription '
set @sql1=@sql1+' FROM vYH a inner join '+@name1+'.dbo.'+@name_table+' b on a.UID=b.UID left join  CACDB_'+@db+'.dbo.userinfo c'
set @sql1=@sql1+' on substring(b.UID,11,10)=substring(c.id,1,10) left join tPlanManager d on d.PlanID =b.handlePlan)'
end
else
begin
set @sql1=@sql1+'(SELECT a.*,UIDS,YHMC,YHDZ,EMAIL,YHZT,comment,'''' JJLJHM,short_address,convert(char(20),CJSJ,120) CJSJ1,convert(char(20),ZHXGSJ,120) ZHXGSJ1,convert(char(20),ZHCSSJ,120) ZHCSSJ1,'''' reserved1,b.handlePlan as uidHandlepLan,c.PlanDescription as uidPlanDescription'
set @sql1=@sql1+' FROM vYH a inner join '+@name1+'.dbo.'+@name_table+' b'
set @sql1=@sql1+' on a.UID=b.UID left join tPlanManager c on c.PlanID =b.handlePlan)'
end
set @sql2=@sql2+'(select pre_UID,a.address,description,a.handlePlan,d.PlanDescription,c.UID,YHZT,comment'
set @sql2=@sql2+' from tArea a inner join '+@name1+'.dbo.'+@name_table+' c'
set @sql2=@sql2+' on a.pre_UID='''+substring(@name1,7,len(@name1)-6)+''' left join tPlanManager d on d.PlanID=a.handlePlan)'
set @sql3=@sql3+'(select a.YHDZ UID_Address, a.short_address, a.UID'
set @sql3=@sql3+' from '+@name1+'.dbo.'+@name_table+' a)'
set @sql4=@sql4+'(select a.id operator_id,a.loginId loginId,b.*,convert(char(20),AlarmDateTime,120) AlarmDateTime1'
set @sql4=@sql4+' from CACDB_User_Log.dbo.Handle_Alarm_Log_'+@db+' b left join tOperator a '
set @sql4=@sql4+' on b.Handler_ID=a.id)'
set @sql5=@sql5+'(select a.UID,a.monitor_id,a.mainAccount'
set @sql5=@sql5+' from '+@name1+'.dbo.tUser_Monitor a, CACDB_S1000.dbo.vYH b'
set @sql5=@sql5+' where a.isMonitor=1 and a.UID=b.UID and b.ifMonitor=2)'
set @sql5=@sql5+' union all (select a.UID,b.id,0 from '+@name1+'.dbo.'+@name_table+' a, CACDB_S6000.dbo.tMonitor b, t_c6101group_Area c, t_c6101group_monitor d where c.area_id='''+substring(@name1,7,len(@name1)-6)+''' and c.group_id=d.group_id and d.monitor_id=b.id)'
set @sql6=@sql6+'(select a.UID,a.monitor_id,a.mainAccount'
set @sql6=@sql6+' from '+@name1+'.dbo.tUser_Monitor a, CACDB_S1000.dbo.vYH b'
set @sql6=@sql6+' where a.UID=b.UID and b.ifMonitor=2)'
set @sql6=@sql6+' union all (select a.UID,b.id,0 from '+@name1+'.dbo.'+@name_table+' a, CACDB_S6000.dbo.tMonitor b, t_c6101group_Area c, t_c6101group_monitor d where c.area_id='''+substring(@name1,7,len(@name1)-6)+''' and c.group_id=d.group_id and d.monitor_id=b.id)'
--add by locker v7
if(substring(@db,1,1)='5')
begin
set @sql7=@sql7+'(SELECT a.c_hsb_cs_id as smasId,a.c_state,a.c_ser_healthchkintervalsecond,a.c_proxy_ip,a.c_register_ip,c.YHMC,c.YHZT,c.JJLJHM,c.UIDLevel,c.sendInfoToRelatedPerson,c.RelationCamer,d.* '
set @sql7=@sql7+' FROM '+@name1+'.dbo.mst_hsbpara a  INNER JOIN ' + @name1 +'.dbo.'+@name_table+' c ON c.hsb_userid = a.c_hsb_cs_id inner join vYH d on d.UID=c.UID)'
exec(@sql7)
end
exec(@sql1)
exec(@sql2)
exec(@sql3)
exec(@sql4)
exec(@sql5)
exec(@sql6)
declare x cursor for select name1 from tDBDes
open x
set @sql1='alter view vUser as '
set @sql2='alter view vArea as '
set @sql3='alter view v_UID_address as '
set @sql4='alter view vAlarmLog_operator as '
set @sql5='alter view vUID_Monitor as '
set @sql6='alter view vUID_Monitor_All as '
set @sql7='alter view v_SmasIDtoUser as '
fetch next from x into @name1
while(@@FETCH_STATUS=0)
begin
 set @db = substring(@name1,7,len(@name1)-6)
 
 set @sql1=@sql1+'(select * from v1_'+@db+')'
 set @sql1=@sql1+' UNION ALL '
 
 set @sql2=@sql2+'(select * from v2_'+@db+')'
 set @sql2=@sql2+' UNION ALL '
 
 set @sql3=@sql3+'(select * from v3_'+@db+')'
 set @sql3=@sql3+' UNION ALL '
 
 set @sql4=@sql4+'(select * from v4_'+@db+')'
 set @sql4=@sql4+' UNION ALL '
 
 set @sql5=@sql5+'(select * from v5_'+@db+')'
 set @sql5=@sql5+' UNION ALL '
 
 set @sql6=@sql6+'(select * from v6_'+@db+')'
 set @sql6=@sql6+' UNION ALL '
 print @db
 if(substring(@db,1,1)='5') set @sql7=@sql7+'(select * from v7_'+@db+')' + ' UNION ALL '
 
 fetch next from x into @name1
end
close x
deallocate x
set @sql1=substring(@sql1,1,len(@sql1)-10)
set @sql2=substring(@sql2,1,len(@sql2)-10)
set @sql3=substring(@sql3,1,len(@sql3)-10)
set @sql4=substring(@sql4,1,len(@sql4)-10)
set @sql5=substring(@sql5,1,len(@sql5)-10)
set @sql6=substring(@sql6,1,len(@sql6)-10)
set @sql7=substring(@sql7,1,len(@sql7)-10)
print @sql7
exec(@sql1)
exec(@sql2)
exec(@sql3)
exec(@sql4)
exec(@sql5)
exec(@sql6)
exec(@sql7)

删除触发器

CREATE TRIGGER [change_view_tDBDes_when_delete] ON [dbo].[tDBDes]
FOR DELETE
AS
declare @db varchar(255)
declare @sql1 nvarchar(4000), @sql2 nvarchar(4000), @sql3 nvarchar(4000), @sql4 nvarchar(4000), @sql5 nvarchar(4000), @sql6 nvarchar(4000), @sql7 nvarchar(4000)
declare @name1 varchar(255), @name_table varchar(255)
declare @viewName1 varchar(255),@viewName2 varchar(255),@viewName3 varchar(255),@viewName4 varchar(255),@viewName5 varchar(255),@viewName6 varchar(255),@viewName7 varchar(255)
set @name1 = (select name1 from deleted)
set @db = substring(@name1,7,len(@name1)-6)
if(substring(@name1,7,1)=3) set @name_table='tAJB_UID'
else set @name_table='tYHXX'
set @sql1='drop view v1_'+@db
set @sql2='drop view v2_'+@db
set @sql3='drop view v3_'+@db
set @sql4='drop view v4_'+@db
set @sql5='drop view v5_'+@db
set @sql6='drop view v6_'+@db
set @sql7='drop view v7_'+@db
set @viewName1 = 'v1_'+@db
set @viewName2 = 'v2_'+@db
set @viewName3 = 'v3_'+@db
set @viewName4 = 'v4_'+@db
set @viewName5 = 'v5_'+@db
set @viewName6 = 'v6_'+@db
set @viewName7 = 'v7_'+@db
 if exists (select * from sysobjects where name=''+@viewName1)
 exec(@sql1)
 if exists (select * from sysobjects where name=''+@viewName2)
 exec(@sql2)
 if exists (select * from sysobjects where name=''+@viewName3)
 exec(@sql3)
 if exists (select * from sysobjects where name=''+@viewName4)
 exec(@sql4)
 if exists (select * from sysobjects where name=''+@viewName5)
 exec(@sql5)
 if exists (select * from sysobjects where name=''+@viewName6)
 exec(@sql6)
 if exists (select * from sysobjects where name=''+@viewName7)
 exec(@sql7)
 --print 'aa'
  
declare x cursor for select name1 from tDBDes
open x
set @sql1='alter view vUser as '
set @sql2='alter view vArea as '
set @sql3='alter view v_UID_address as '
set @sql4='alter view vAlarmLog_operator as '
set @sql5='alter view vUID_Monitor as '
set @sql6='alter view vUID_Monitor_All as '
set @sql7='alter view v_SmasIDtoUser as '
fetch next from x into @name1
while(@@FETCH_STATUS=0)
begin
 set @db = substring(@name1,7,len(@name1)-6)
 
 set @sql1=@sql1+'(select * from v1_'+@db+')'
 set @sql1=@sql1+' UNION ALL '
 
 set @sql2=@sql2+'(select * from v2_'+@db+')'
 set @sql2=@sql2+' UNION ALL '
 
 set @sql3=@sql3+'(select * from v3_'+@db+')'
 set @sql3=@sql3+' UNION ALL '
 
 set @sql4=@sql4+'(select * from v4_'+@db+')'
 set @sql4=@sql4+' UNION ALL '
 
 set @sql5=@sql5+'(select * from v5_'+@db+')'
 set @sql5=@sql5+' UNION ALL '
 
 set @sql6=@sql6+'(select * from v6_'+@db+')'
 set @sql6=@sql6+' UNION ALL '
 
 if(substring(@db,1,1)='5') set @sql7=@sql7+'(select * from v7_'+@db+')' + ' UNION ALL '
 
 
 fetch next from x into @name1
end
close x
deallocate x
set @sql1=substring(@sql1,1,len(@sql1)-10)
set @sql2=substring(@sql2,1,len(@sql2)-10)
set @sql3=substring(@sql3,1,len(@sql3)-10)
set @sql4=substring(@sql4,1,len(@sql4)-10)
set @sql5=substring(@sql5,1,len(@sql5)-10)
set @sql6=substring(@sql6,1,len(@sql6)-10)
set @sql7=substring(@sql7,1,len(@sql7)-10)
exec(@sql1)
exec(@sql2)
exec(@sql3)
exec(@sql4)
exec(@sql5)
exec(@sql6)
exec(@sql7)

触发器 jackey相关推荐

  1. MySQL 学习笔记(8)— 触发器

    1. 触发器概念 触发器是 MySQL 响应以下任意语句而自动执行的一条 MySQL 语句(或位于BEGIN 和 END 语句之间的一组语句) INSERT UPDATE DELETE 其他 MySQ ...

  2. Oracle 触发器 Update 不能操作本表的疑问

    今天要解决一个需求,类似表A有个字段叫flag存储的是0 or  1 ,当一行记录更改为1的时候,其他行同字段要变为0. 这样的需求第一个思路想尝试下能否用触发器来实现 create or repla ...

  3. SQL SERVER 触发器示例

    触发器是一种特殊的存储过程. 触发器语法 : CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { FOR | A ...

  4. mysql触发器菜鸟_mysql触发器学习

    创建一个触发器 语法:create trigger 触发器名字create trigger xiaoshou_update_trigger after update on xiaoshou for e ...

  5. 【Postgresql】触发器某个字段更新时执行,行插入或更新执行

    [Postgresql]触发器某个字段更新时执行,行插入或更新执行 1. postgresql触发器 2. 触发器的创建及示例 1) 字段更新时,触发 2) 行插入或更新时,触发 3. 触发器的删除 ...

  6. 数据库实验:数据库和表、查询、视图与安全性、存储过程及游标、触发器、综合实验-水果商店进阶

    数据库实验:数据库和表.查询.视图与安全性.存储过程及游标.触发器.综合实验-水果商店进阶 实验一.数据库和表 源码1: 源码2: 小结 实验二.查询 源码 小结 实验三.视图.安全性 源码: 小结 ...

  7. Sqlserver的触发器的简单使用

    1,触发器有两种 (1)After触发器(之后触发) 触发器有个好处:就是你之前有过什么操作他会将你的操作的数据信息完整的保存下来,比如你删过什么信息,如果用触发器,那么删除后就会显示两行受影响,那么 ...

  8. 实验6 触发器的使用

    实验6 触发器的使用 实验目的 掌握触发器的创建.修改和删除操作. 掌握触发器的触发执行. 掌握触发器与约束的不同. 二.实验要求 1.创建触发器. 2.触发器执行触发器. 3.验证约束与触发器的不同 ...

  9. Sql Server 因为触发器问题导致数据库更新报错“在触发器执行过程中引发了错误,批处理已中止”的问题处理...

    在维护一个非常旧的项目时,由于该项目版本已经非常老了,而且在客户现场运行的非常稳定,更要命的是本人目前没有找到该项目的代码,为了处理一个新的需求而且还不能修改程序代码,于是决定从数据库入手,毕竟该项目 ...

最新文章

  1. Asp.net系列--基础篇(一)
  2. IOS开发报错之Undefined symbols for architecture armv6
  3. oracle 主键删除,联合主键的创建
  4. ZSH and oh-my-zsh 强强联合
  5. 【iCore3 双核心板_ uC/OS-III】例程四:时间管理
  6. Python 多进程
  7. mysql经典sql语句大全_经典SQL语句大全
  8. oppor829t如何刷机_OPPO R829T卡刷刷机图文教程
  9. 模块化的ESP8266小电视设计与制作
  10. 互联网周刊咋么了呢?
  11. 小程序源码:图片秒加水印制作生成
  12. 安卓APP自动更新功能实现
  13. python画布删除图形_Matplotlib在savefig之后从画布中清除旧图形
  14. 蓝桥杯-魔方旋转问题
  15. 计算机仿真工具软件,计算机仿真技术
  16. Java GC 介绍
  17. 蔡丹红老师刁酒集团《基层管理人员综合能力提升培训班》企业内训开讲
  18. 传销分子为什么喜欢国学? PS:尽信书不如无书!
  19. 如何解决cmd找不到路径问题
  20. 程序员的吐槽大会,动机何在?

热门文章

  1. 模棱两可的生物学概念问题辨析1
  2. 赫夫曼树的创建(思路分析)
  3. select SCM type and URL 用m2e插件从svn导出maven项目
  4. 数字图像 - 图像隐写
  5. 快速了解 Git 仓库
  6. 线性空间,度量空间,赋范空间,线性赋范空间,内积空间,巴拿赫空间以及希尔伯特空间、拓扑空间
  7. Python学习,用python-webdriver实现自动填表
  8. CAD图纸打印文字显示空心怎么办?
  9. 苹果发布会在即 iMessage将迎来哪些重大更新?
  10. 浅谈 Facade 模式