Rac*_*erX 3 t-sql sql-server sql-server-2005 sql-server-2008
在创建存储过程之前要发出的最佳SET选项是什么?
例如
SET QUOTED_IDENTIFIER OFF
SET ANSI_NULLS ON
CREATE PROCEDURE HelloWorld
AS
--also, should any be issued within the procedure body?
PRINT 'hello world!'
RETURN 0
GO
Run Code Online (Sandbox Code Playgroud)
最好的,我的意思是最喜欢的设置.
具体而言,对于存储过程创建,在解析时只有两个很重要
SET ANSI_NULLS
SET QUOTED_IDENTIFIER
Run Code Online (Sandbox Code Playgroud)
并且它们应该打开以使用较新的SQL Server功能,这些功能仅适用于这些功能
存储过程使用在执行时指定的SET设置执行,但SET ANSI_NULLS和SET QUOTED_IDENTIFIER除外.指定SET ANSI_NULLS或SET QUOTED_IDENTIFIER的存储过程使用在存储过程创建时指定的设置.如果在存储过程中使用,则忽略任何SET设置.
参考:http://msdn.microsoft.com/en-us/library/ms190356.aspx
要同时设置和其他设置,请使用
SET ANSI_DEFAULTS ON
Run Code Online (Sandbox Code Playgroud)
启用(ON)时,此选项启用以下ISO设置:
SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS
Run Code Online (Sandbox Code Playgroud)
为了完整性,在连接级别设置其他三个,这样可以使INDEXED VIEWs之类的东西正常工作
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET NUMERIC_ROUNDABORT OFF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5069 次 |
| 最近记录: |