存储过程中常见的设定

1、SET QUOTED_IDENTIFIER ON/OFF

        设置为ON的时候,我们可以使用关键字(select,update等)作为对象名(表名);

        设置为OFF的时候,不可以,因为系统会解析select,update等为关键字

2、SET ANSI_NULLS ON/OFF

        当设置为ON时,即使列中存在空值,使用where 列名=NULL时的select语句返回的是0行。如果列中没有非空值,使用where 列名<>NULL时的select语句仍然返回的是0行;

        当设置为OFF时,使用where 列名=NULL的select语句返回列名中含有空值的行。使用where 列名<>NULL的select语句返回列中含有非空值的行;此外,使用where 列名<>XYZ_value的select语句依然返回所有非XYZ_value的行。

3、SET NOCOUNT ON/OFF    

        当设置为ON时,表示在消息栏中不返回计数(受影响行数)

        当设置为OFF时,表示在消息栏中返回计数

4、SET XACT_ABORT ON/OFF

        当设置为ON时,如果执行Transact-SQL 语句产生错误,则整个事务将终止并回滚

        当设置为OFF时,又是只回滚错误的Transact-SQL 语句,而事务将继续进行处理。如果错误很严重,那么即使设置为OFF,也可能回滚整个事务

5、SET LOCK_TIMEOUT <锁超时时间>

        允许应用程序语句等待阻塞资源的最长时间。当一条语句已等待超过设置时间,那么被锁住的语句将自动取消,并给应用程序返回一条错误信息

        在没有设置超时时间的时候,select @@lock_timeout返回结果为-1,表示没有超时时间;

        超时时间是毫秒为的单位,并且只对当次的回话有效,set lock_timeout 2000 select @@lock_timeout,返回结果为2000

        

猜你喜欢

转载自blog.csdn.net/JessieZao/article/details/80897504