`
jackroomage
  • 浏览: 1198459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

sqlserver 中 触发器的写法

 
阅读更多

--   插入时执行触发器

 

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[rscOpenInsert]
on [dbo].[RSC_INFO]
for insert
as
DECLARE
@v_rscID varchar(50),
@v_status int
begin
    select @v_rscID=rscID,@v_status=status from inserted;
    --取得当前资源信息status>4 才插入信息
 if @v_status > 4
   begin
    insert into RSC_OPEN_SYNCHRONOUS(rscID,opStatus,opDateTime) values (@v_rscID,'insert',getDate())
   end
end

 

 

 

--- 更新时执行触发器

 

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create trigger [dbo].[rscOpenUpdate]
on [dbo].[RSC_INFO]
for update
as
DECLARE
@v_rscID varchar(50),
@v_status int
begin
    select @v_rscID=rscID,@v_status=status from inserted;
    --取得当前资源信息status>4 才更新信息
if @v_status > 4
   begin
     update RSC_OPEN_SYNCHRONOUS set opStatus = 'update', opDateTime = getDate() where rscID=@v_rscID
   end
end

 

 

 

 

 

 SQLServer中的“SET ANSI_NULLS ON”和“SET QUOTED_IDENTIFIER ON”有什么实际的用处?

这些是 SQL-92 设置语句,使 SQL Server 2000/2005 遵从 SQL-92 规则。
当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须符合所有 Transact-SQL 标识符规则。
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (<>) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 语句仍会返回零行。
当 SET ANSI_NULLS 为 OFF 时,等于 (=) 和不等于 (<>) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name <> NULL 的 SELECT 语句返回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。

 

 

分享到:
评论

相关推荐

    SqlServer触发器写法案例

    最近用到触发器,研究了一下,现给菜鸟的你分享下。。

    SqlServer2000触发器

    NULL 博文链接:https://lytlove68.iteye.com/blog/677675

    SQL数据库(触发器)

    SQL数据库。

    SQL Server数据库中DML触发器的教学探讨

    针对初学者容易混淆AFTER触发器与INSTEAD OF触发器的问题,首先用通俗的语言对触发器进行了概述,接着阐述了触发器的工作原理,然后结合实例分析了AFTER触发器与INSTEAD OF触发器的主要区别与应用,最后总结了触发器...

    MySQL与SQL的触发器的不同写法

    当在SQL、MySQL数据库中一张表中插入一条记录时,触动触发器,使同一数据库的另一张表插入相同记录。

    SqlServer转换Oracle.docx

    SQLSERVER转ORACLE-&gt;SQLSERVER转ORACLE语句写法、SQLSERVER转ORACLE语句写法

    行业管理_触发器_trigger_saddlegw6_

    触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,,sql触发器的写法,简化代码量

    全面对比T-SQL与PL/SQL

    全面对比T-SQL与PL/SQL 查询的函数,语句的写法,变量声明、赋值与引用,游标,触发器,过程等。值得一看。

    数据库文档

    关于SQLSERVER数据库的详细说明,包括查询语句的写法,触发器,存储过程等

    asp.net知识库

    在Framework1.0下同时连接SqlServer和Oracle的一些体会 XML XPath XPath最通俗的教程(ZZ) XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个...

Global site tag (gtag.js) - Google Analytics