--声明数据库应用。 use ZBERP_11; go
--判断是否已存在触发器,如果已存在则删除。 if exists(select * from sysobjects where name='insteadoftri') drop trigger insteadoftri; go
--执行创建触发器 create
--触发器关键字 trigger
--DML 触发器所属架构的名称。 DML 触发器的作用域是为其创建该触发器的表或视图的架构。 不能为 DDL 或登录触发器指定 --[dbo.] --触发器名称 dbo.insteadoftri
on
--对其执行 DML 触发器的表或视图,有时称为触发器表或触发器视图。 可以根据需要指定表或视图的完全限定名称。 视图只能被 INSTEAD OF 触发器引用。 不能对局部或全局临时表定义 DML 触发器。 dbo.v_F7001_TEST
with --对CREATE TRIGGER 语句的文本进行模糊处理。使用WITH ENCRYPTION可以防止将触发器作为SQL Server复制的一部分进行发布。不能为 CLR 触发器指定 WITH ENCRYPTION。(指定此选项将为触发器加密) encryption,
--指示触发器已本机编译。 (只能应用于table) --内存优化表上的触发器需要使用此选项。 --[native_compilation][,]
--确保不能删除或更改触发器引用的表。(只能应用于table) --内存优化表上的触发器需要使用此选项,但此选项不支持传统表上的触发器。 schemabinding
--EXECUTE AS (后面可以跟函数,存储过程等) --指定用于执行该触发器的安全上下文。 允许您控制 SQL Server 实例用于验证被触发器引用的任意数据库对象的权限的用户帐户。 --内存优化表上的触发器需要使用此选项。 --[execute as clause]
--指定执行 DML 触发器而不是触发 SQL 语句,因此,其优先级高于触发语句的操作。 不能为 DDL 或登录触发器指定 INSTEAD OF。 --对于表或视图,每个 INSERT、UPDATE 或 DELETE 语句最多可定义一个 INSTEAD OF 触发器。 但是,可以为具有自己的 INSTEAD OF 触发器的多个视图定义视图。 --INSTEAD OF 触发器不可以用于使用 WITH CHECK OPTION 的可更新视图。 如果将 INSTEAD OF 触发器添加到指定了 WITH CHECK OPTION 的可更新视图中,则 SQL Server 将引发错误。 用户须用 ALTER VIEW 删除该选项后才能定义 INSTEAD OF 触发器。 instead of
--指定数据修改语句,这些语句可在 DML 触发器对此表或视图进行尝试时激活该触发器。 必须至少指定一个选项。 在触发器定义中允许使用上述选项的任意顺序组合。 --对于 INSTEAD OF 触发器,不允许对具有指定级联操作 ON DELETE 的引用关系的表使用 DELETE 选项。 同样,也不允许对具有指定级联操作 ON UPDATE 的引用关系的表使用 UPDATE 选项。 insert,update,delete
--指定应该再添加一个现有类型的触发器。 WITH APPEND 不能与 INSTEAD OF 触发器一起使用。如果显式声明了 AFTER 触发器,则也不能使用该子句。 --仅当为了向后兼容而指定了 FOR 时(但没有 INSTEAD OF 或 AFTER)时,才能使用 WITH APPEND。 如果指定了 EXTERNAL NAME(即触发器为 CLR 触发器),则不能指定 WITH APPEND。 --with append
--指示当复制代理修改涉及到触发器的表时,不应执行触发器。
not for replication
as
begin
if (select count(1) from inserted) = 1 and (select count(1) from deleted) = 0
begin
print('insert');
INSERT INTO [ZBERP].[dbo].F7001
select top 1 [CSCODE],[CSCDNO],[CSNAME],[CSGNDR],[CSBRDT],[CSWDDY],[CSCTZNS],[CSPSTP],[CSPSNO],[CSTEL],[CSPHONE],[CSTEL2],[CSFAX],[CSEMAIL],[CSQQ],[CSMSN],[CSPRNC],[CSCITY],[CSCONY],[CSTOWN],[CSADDS],[CSADDS2],[CSPSCD],[CSTRADE],[CSPSTN],[CSEDUC],[CSPICM],[CSMCU],[CSRGDJ],[CSLEVEL],[CSTYPE],[CSCCDJ],[Flag],[CSIFAP],[CSSLAA],[CSLSDJ],[CSHSHP],[CSHBGM],[CSHSTN],[CSHDNC],[CSHWRT],[CSHMSC],[CSHPGM],[CSHRDG],[CSNCQQ],[CSNCFAX],[CSNCTEL],[CSNCSMS],[CSNCVST],[CSNCML],[CSRMK],[CSCRID],[CSCRDT],[CSUPID],[CSUPDT],[CSCATE],[CSSALENUM],[CSLEVELDESC],[CSCARDUPDATE],[CS_NEW_MARRY],[CS_PASSWORD],[CS_LOGID],[CS_WEB_UPDATE_TIME],[CS_TUJ_FRIEND],[CS_TUJ_NET],[CS_TUJ_MD],[CS_TUJ_ZAZI],[CS_TUJ_BAOZI],[CS_TUJ_TV],[CS_TUJ_SMS],[CS_TUJ_OTHER],[CS_CATE_DIAMOND],[CS_CATE_BAOSI],[CS_CATE_POKING],[CS_CATE_KKING],[CS_CATE_DOOR],[CS_CATE_OTHER],[CS_SP_LVJ],[CS_SP_DUIJ],[CS_SP_DIAOZUI],[CS_SP_XLIAN],[CS_SP_SOUZUO],[CS_SP_ERXI],[CS_SP_JIAOLIAN],[CS_SP_WEIJIE],[CS_YW_ZHENPING],[CS_YW_GIFT],[CS_YW_JUAN],[CS_YW_MANJIAN],[CS_YW_ZEKOU],[CS_YW_ZSSIPING],[CS_YW_WENYI],[CS_YW_DOULEJF],[CS_YW_OTHER],[CS_JH_JIUHUI],[CS_JH_JIANHUI],[CS_JH_JMH],[CS_JH_MOVIE],[CS_JH_YCH],[CS_JH_MEIRONG],[CS_JH_TOUZI],[CS_JH_TUIDUI],[CS_JH_XINGPING],[CS_JH_GOLF],[CS_JH_CISAN],[CS_JH_OTHER],[CS_POS_UPDATE_TIME],[CS_TUIJIAN_ID],[CS_TUIJIAN_NAME],[CS_COMEFROM],[CS_SP_NANJIE],[CS_FW_ZENZI],[CS_FW_HKUAN],[CS_FW_YOUHUI],[CS_FW_HJ],[CS_FW_FW],[CS_FW_TESE],[CS_FW_ZP],[CS_FW_OTHER],[CS_FW_OTHER_RMK],[CS_FS_SMS],[CS_FS_EMAIL],[CS_FS_TGAO],[CS_FS_WXING],[CS_FS_YOUJI],[CS_FS_ZC],[CS_FS_OTHER],[CS_FS_OTHER_RMK],[CS_LOVER_BIRTHDAY],[CS_YW_OTHER_RMK],[CS_SP_OTHER],[CS_SP_OTHER_RMK],[CS_CATE_OTHER_RMK],[CS_TUJ_OTHER_RMK],[CS_TUJ_AD],[cs_wxhao],[rgmcu],[lock],[CSProvince],[CSDistrict],[CS_AV_Phone],[CS_AV_CCODE] from inserted ;
end
else if (select count(1) from deleted) = 1 and (select count(1) from inserted) = 0
begin
print('delete');
delete from [ZBERP].[dbo].[F7001] where SEQUENCE=(select top 1 SEQUENCE from deleted order by SEQUENCE desc);
end
else
begin
print('update');
UPDATE [ZBERP].[dbo].[F7001] SET [CSCODE]=inserted.CSCODE ,[CSCDNO]=inserted.CSCDNO ,[CSNAME]=inserted.CSNAME ,[CSGNDR]=inserted.CSGNDR ,[CSBRDT]=inserted.CSBRDT ,[CSWDDY]=inserted.CSWDDY ,[CSCTZNS]=inserted.CSCTZNS ,[CSPSTP]=inserted.CSPSTP ,[CSPSNO]=inserted.CSPSNO ,[CSTEL]=inserted.CSTEL ,[CSPHONE]=inserted.CSPHONE ,[CSTEL2]=inserted.CSTEL2 ,[CSFAX]=inserted.CSFAX ,[CSEMAIL]=inserted.CSEMAIL ,[CSQQ]=inserted.CSQQ ,[CSMSN]=inserted.CSMSN ,[CSPRNC]=inserted.CSPRNC ,[CSCITY]=inserted.CSCITY ,[CSCONY]=inserted.CSCONY ,[CSTOWN]=inserted.CSTOWN ,[CSADDS]=inserted.CSADDS ,[CSADDS2]=inserted.CSADDS2 ,[CSPSCD]=inserted.CSPSCD ,[CSTRADE]=inserted.CSTRADE ,[CSPSTN]=inserted.CSPSTN ,[CSEDUC]=inserted.CSEDUC ,[CSPICM]=inserted.CSPICM ,[CSMCU]=inserted.CSMCU ,[CSRGDJ]=inserted.CSRGDJ ,[CSLEVEL]=inserted.CSLEVEL ,[CSTYPE]=inserted.CSTYPE ,[CSCCDJ]=inserted.CSCCDJ ,[Flag]=inserted.Flag ,[CSIFAP]=inserted.CSIFAP ,[CSSLAA]=inserted.CSSLAA ,[CSLSDJ]=inserted.CSLSDJ ,[CSHSHP]=inserted.CSHSHP ,[CSHBGM]=inserted.CSHBGM ,[CSHSTN]=inserted.CSHSTN ,[CSHDNC]=inserted.CSHDNC ,[CSHWRT]=inserted.CSHWRT ,[CSHMSC]=inserted.CSHMSC ,[CSHPGM]=inserted.CSHPGM ,[CSHRDG]=inserted.CSHRDG ,[CSNCQQ]=inserted.CSNCQQ ,[CSNCFAX]=inserted.CSNCFAX ,[CSNCTEL]=inserted.CSNCTEL ,[CSNCSMS]=inserted.CSNCSMS ,[CSNCVST]=inserted.CSNCVST ,[CSNCML]=inserted.CSNCML ,[CSRMK]=inserted.CSRMK ,[CSCRID]=inserted.CSCRID ,[CSCRDT]=inserted.CSCRDT ,[CSUPID]=inserted.CSUPID ,[CSUPDT]=inserted.CSUPDT ,[CSCATE]=inserted.CSCATE ,[CSSALENUM]=inserted.CSSALENUM ,[CSLEVELDESC]=inserted.CSLEVELDESC ,[CSCARDUPDATE]=inserted.CSCARDUPDATE ,[CS_NEW_MARRY]=inserted.CS_NEW_MARRY ,[CS_PASSWORD]=inserted.CS_PASSWORD ,[CS_LOGID]=inserted.CS_LOGID ,[CS_WEB_UPDATE_TIME]=inserted.CS_WEB_UPDATE_TIME ,[CS_TUJ_FRIEND]=inserted.CS_TUJ_FRIEND ,[CS_TUJ_NET]=inserted.CS_TUJ_NET ,[CS_TUJ_MD]=inserted.CS_TUJ_MD ,[CS_TUJ_ZAZI]=inserted.CS_TUJ_ZAZI ,[CS_TUJ_BAOZI]=inserted.CS_TUJ_BAOZI ,[CS_TUJ_TV]=inserted.CS_TUJ_TV ,[CS_TUJ_SMS]=inserted.CS_TUJ_SMS ,[CS_TUJ_OTHER]=inserted.CS_TUJ_OTHER ,[CS_CATE_DIAMOND]=inserted.CS_CATE_DIAMOND ,[CS_CATE_BAOSI]=inserted.CS_CATE_BAOSI ,[CS_CATE_POKING]=inserted.CS_CATE_POKING ,[CS_CATE_KKING]=inserted.CS_CATE_KKING ,[CS_CATE_DOOR]=inserted.CS_CATE_DOOR ,[CS_CATE_OTHER]=inserted.CS_CATE_OTHER ,[CS_SP_LVJ]=inserted.CS_SP_LVJ ,[CS_SP_DUIJ]=inserted.CS_SP_DUIJ ,[CS_SP_DIAOZUI]=inserted.CS_SP_DIAOZUI ,[CS_SP_XLIAN]=inserted.CS_SP_XLIAN ,[CS_SP_SOUZUO]=inserted.CS_SP_SOUZUO ,[CS_SP_ERXI]=inserted.CS_SP_ERXI ,[CS_SP_JIAOLIAN]=inserted.CS_SP_JIAOLIAN ,[CS_SP_WEIJIE]=inserted.CS_SP_WEIJIE ,[CS_YW_ZHENPING]=inserted.CS_YW_ZHENPING ,[CS_YW_GIFT]=inserted.CS_YW_GIFT ,[CS_YW_JUAN]=inserted.CS_YW_JUAN ,[CS_YW_MANJIAN]=inserted.CS_YW_MANJIAN ,[CS_YW_ZEKOU]=inserted.CS_YW_ZEKOU ,[CS_YW_ZSSIPING]=inserted.CS_YW_ZSSIPING ,[CS_YW_WENYI]=inserted.CS_YW_WENYI ,[CS_YW_DOULEJF]=inserted.CS_YW_DOULEJF ,[CS_YW_OTHER]=inserted.CS_YW_OTHER ,[CS_JH_JIUHUI]=inserted.CS_JH_JIUHUI ,[CS_JH_JIANHUI]=inserted.CS_JH_JIANHUI ,[CS_JH_JMH]=inserted.CS_JH_JMH ,[CS_JH_MOVIE]=inserted.CS_JH_MOVIE ,[CS_JH_YCH]=inserted.CS_JH_YCH ,[CS_JH_MEIRONG]=inserted.CS_JH_MEIRONG ,[CS_JH_TOUZI]=inserted.CS_JH_TOUZI ,[CS_JH_TUIDUI]=inserted.CS_JH_TUIDUI ,[CS_JH_XINGPING]=inserted.CS_JH_XINGPING ,[CS_JH_GOLF]=inserted.CS_JH_GOLF ,[CS_JH_CISAN]=inserted.CS_JH_CISAN ,[CS_JH_OTHER]=inserted.CS_JH_OTHER ,[CS_POS_UPDATE_TIME]=inserted.CS_POS_UPDATE_TIME ,[CS_TUIJIAN_ID]=inserted.CS_TUIJIAN_ID ,[CS_TUIJIAN_NAME]=inserted.CS_TUIJIAN_NAME ,[CS_COMEFROM]=inserted.CS_COMEFROM ,[CS_SP_NANJIE]=inserted.CS_SP_NANJIE ,[CS_FW_ZENZI]=inserted.CS_FW_ZENZI ,[CS_FW_HKUAN]=inserted.CS_FW_HKUAN ,[CS_FW_YOUHUI]=inserted.CS_FW_YOUHUI ,[CS_FW_HJ]=inserted.CS_FW_HJ ,[CS_FW_FW]=inserted.CS_FW_FW ,[CS_FW_TESE]=inserted.CS_FW_TESE ,[CS_FW_ZP]=inserted.CS_FW_ZP ,[CS_FW_OTHER]=inserted.CS_FW_OTHER ,[CS_FW_OTHER_RMK]=inserted.CS_FW_OTHER_RMK ,[CS_FS_SMS]=inserted.CS_FS_SMS ,[CS_FS_EMAIL]=inserted.CS_FS_EMAIL ,[CS_FS_TGAO]=inserted.CS_FS_TGAO ,[CS_FS_WXING]=inserted.CS_FS_WXING ,[CS_FS_YOUJI]=inserted.CS_FS_YOUJI ,[CS_FS_ZC]=inserted.CS_FS_ZC ,[CS_FS_OTHER]=inserted.CS_FS_OTHER ,[CS_FS_OTHER_RMK]=inserted.CS_FS_OTHER_RMK ,[CS_LOVER_BIRTHDAY]=inserted.CS_LOVER_BIRTHDAY ,[CS_YW_OTHER_RMK]=inserted.CS_YW_OTHER_RMK ,[CS_SP_OTHER]=inserted.CS_SP_OTHER ,[CS_SP_OTHER_RMK]=inserted.CS_SP_OTHER_RMK ,[CS_CATE_OTHER_RMK]=inserted.CS_CATE_OTHER_RMK ,[CS_TUJ_OTHER_RMK]=inserted.CS_TUJ_OTHER_RMK ,[CS_TUJ_AD]=inserted.CS_TUJ_AD ,[cs_wxhao]=inserted.cs_wxhao ,[rgmcu]=inserted.rgmcu ,[lock]=inserted.lock ,[CSProvince]=inserted.CSProvince ,[CSDistrict]=inserted.CSDistrict ,[CS_AV_Phone]=inserted.CS_AV_Phone ,[CS_AV_CCODE]=inserted.CS_AV_CCODE
from inserted
where [ZBERP].[dbo].[F7001].Sequence=(select top 1 Sequence from deleted order by Sequence desc);
end
end
go