SqlServer实现类似Oracle的before触发器示例
1. 插入数据前判断数据是否存在
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- 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:
-- Create date:
-- 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相关阅读:
Win7 64位系统下PHP连接Oracle数据库
JS实现进入页面时渐变背景色的方法
win8.1系统打开QQ提示QQ.exe无法找到入口怎么办?解决方法
php防止恶意刷新与刷票的方法
javascript中hasOwnProperty() 方法使用指南
ORACLE中的日期加减操作实例介绍
Win7电脑看视频黑屏有声音解决教程
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Win10预览版选择“修复我”时出现错误代码0x80080300如何解决
java面试常见问题之Hibernate总结
PHP分页效率终结版(推荐)
jQuery CSS()方法改变现有的CSS样式表
Java、JavaScript、Oracle、MySQL中实现的MD5加密算法分享
php中最简单的字符串匹配算法