我可以使用SET ANSI_NULLS
或SET ANSI_NULLS OFF
SET ANSI_NULLS ON
的值
问题#1 如何获取当前值?
问题#2 设置值是否应用于查询?表?实例?整个db?
问题#3 如果我进入了if myNullParam <>null
的公司,我应该检查哪些地方(db?schema?query?)告诉他们 - 这会工作,还是不?
感谢。
答案 0 :(得分:6)
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 :(得分:4)
答案1
您可以运行以下查询以获取是否设置了ANSI_NULLS。
DECLARE @options INT
SELECT @options = @@OPTIONS
IF ( (32 & @options) = 32 ) PRINT 'ANSI_NULLS'
如果打印ANSI_NULLS
,则设置ANSI_NULLS
或未设置。
答案 2 :(得分:1)
您可以使用此查询来获取给定数据库的属性:
SELECT is_ansi_nulls_on FROM sys.databases WHERE name = 'yourDatabase'
答案 3 :(得分:0)
您可以按照下面的说明检查所有设置
dbcc useroptions