-- TABLE INSERTVAL UPDATEVAL
if (object_id('DATA_SYNC_FH_DJ','TR') is not null)
drop trigger DATA_SYNC_FH_DJ
go
create trigger DATA_SYNC_FH_DJ
on FH_DJ
for insert,update,delete
as
declare
@oldUpdate varchar(20),
@newDate varchar(20),
@DJdanhao varchar(20),
@Djid int,
@isInsert bit,
@isUpdate bit,
@isDelete bit;
-- 判断是否为插入操作
IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
BEGIN
SET @isInsert = 1;
select @Djid = djid from inserted;
END
ELSE
SET @isInsert = 0
-- 判断是否为更新操作
IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
BEGIN
SET @isUpdate = 1;
select @Djid = djid from inserted;
END
ELSE
SET @isUpdate = 0
-- 判断是否为删除操作
IF (NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted))
BEGIN
SET @isDelete = 1;
select @DJdanhao = DJdanhao from deleted;
END
ELSE
SET @isDelete = 0
--更新前的数据
select @oldUpdate = F_SYNC_UPDATE from deleted;
--通过应用程序修改时,F_SYNC_UPDATE=null或F_SYNC_UPDATE=0,此时不需要更新F_SYNC_DATE 时间戳,也不需要记录删除记录
if ((@oldUpdate is null) or (@oldUpdate = 0))
begin
--更新操作,更新时间戳F_SYNC_DATE=systimestamp和F_SYNC_UPDATE=null
if (@isUpdate = 1)
insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS)
values ('FH_DJ', 2, GETDATE(), @Djid);
--把新增加的记录插入到操作记录表
if (@isInsert = 1)
insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS)
values ('FH_DJ', 1, GETDATE(), @Djid);
--把删除记录的主键添加到操作记录表
if (@isDelete = 1)
insert into DATA_SYNC_B_OPERATOR (t_name, o_type, o_date, VKEYS)
values ('FH_DJ', 3, GETDATE(), 'test@' + @DJdanhao);
end
go
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都创新互联专注于企业
成都全网营销推广、网站重做改版、丰林网站定制设计、自适应品牌网站建设、
H5高端网站建设、
商城网站建设、集团公司官网建设、
外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为丰林等各大城市提供网站开发制作服务。
当前题目:SQLServer创建触发器-创新互联
标题路径:
http://cqcxhl.cn/article/ccsddd.html