主页 > 知识库 > SqlServer实现类似Oracle的before触发器示例

SqlServer实现类似Oracle的before触发器示例

热门标签:Linux服务器 服务外包 AI电销 网站排名优化 地方门户网站 铁路电话系统 百度竞价排名 呼叫中心市场需求

1. 插入数据前判断数据是否存在

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author: Author,,Name> 
-- Create date: Create Date,,> 
-- Description: Description,,> 
-- ============================================= 
alter TRIGGER CategoryExistTrigger 
ON ProductCategory 
instead of insert 
AS 

declare @categoryName varchar(50); 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

-- Insert statements for trigger here 
select @categoryName = CategoryName from inserted; 
if exists(select * from ProductCategory where CategoryName =@categoryName) 
begin 
print 'Category exists..' 
end; 
else 
begin 
insert into ProductCategory select * from inserted; 
end; 

END

2. 删除表中数据时需要先删除外键表的数据

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author: Author,,Name> 
-- Create date: Create Date,,> 
-- Description: Description,,> 
-- ============================================= 
alter TRIGGER DeleteOrderTrigger 
ON OrderHeader 
instead of delete 
AS 
declare @OrderId varchar(50); 
BEGIN 

SET NOCOUNT ON; 
select @OrderId = OrderId from deleted; 
delete from OrderLine where OrderId = @OrderId; 

END 
GO
您可能感兴趣的文章:
  • 关于喜忧参半的SQL Server触发器详解
  • 利用SQL Server触发器实现表的历史修改痕迹记录
  • SQLSERVER对加密的存储过程、视图、触发器进行解密(推荐)
  • SQL Server 使用触发器(trigger)发送电子邮件步骤详解
  • SQL Server实现用触发器捕获DML操作的会话信息【实例】
  • SQL Server:触发器实例详解
  • SqlServer触发器详解
  • SQL SERVER中各类触发器的完整语法及参数说明
  • SQL SERVER 触发器介绍
  • SQL Server误区30日谈 第4天 DDL触发器就是INSTEAD OF触发器
  • SQL Server 触发器详情

标签:湘潭 湖南 铜川 崇左 黄山 衡水 兰州 仙桃

巨人网络通讯声明:本文标题《SqlServer实现类似Oracle的before触发器示例》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266