SET ANSI_NULLS
我可以通过使用SET ANSI_NULLS OFF
或更改值SET ANSI_NULLS ON
Question #1 我怎样才能得到当前值?
Question #2 设置值是否应用于查询?桌子?实例?整个数据库?
Question #3如果我要进入一家这样做的公司,if myNullParam <>null
我应该检查的地方是什么(db?schema?query?)告诉他们——这行得通,还是不行?
谢谢。
SET ANSI_NULLS
我可以通过使用SET ANSI_NULLS OFF
或更改值SET ANSI_NULLS ON
Question #1 我怎样才能得到当前值?
Question #2 设置值是否应用于查询?桌子?实例?整个数据库?
Question #3如果我要进入一家这样做的公司,if myNullParam <>null
我应该检查的地方是什么(db?schema?query?)告诉他们——这行得通,还是不行?
谢谢。
select databasepropertyex('MyDatabaseName', 'IsAnsiNullsEnabled')
会告诉你数据库默认值。Hitesh 的回答将告诉您当前会话的价值。For a script to work as intended, regardless of the ANSI_NULLS database option or the setting of SET ANSI_NULLS, use IS NULL and IS NOT NULL in comparisons that might contain null values.
所以虽然它可能有效,但它肯定违反了最佳实践。 答案 1
您可以在下面运行查询以获取是否设置了 ANSI_NULLS。
DECLARE @options INT
SELECT @options = @@OPTIONS
IF ( (32 & @options) = 32 ) PRINT 'ANSI_NULLS'
如果打印ANSI_NULLS
则ANSI_NULLS
设置或未设置。
你可以在这里找到更多帮助http://www.mssqltips.com/sqlservertip/1415/determining-set-options-for-a-current-session-in-sql-server/
您可以使用此查询来获取给定数据库的属性:
SELECT is_ansi_nulls_on FROM sys.databases WHERE name = 'yourDatabase'
您可以通过以下方式检查所有设置
dbcc 用户选项