3

SET ANSI_NULLS我可以通过使用SET ANSI_NULLS OFF或更改值SET ANSI_NULLS ON

Question #1 我怎样才能得到当前值?

Question #2 设置值是否应用于查询?桌子?实例?整个数据库?

Question #3如果我要进入一家这样做的公司,if myNullParam <>null我应该检查的地方是什么(db?schema?query?)告诉他们——这行得通,还是不行

谢谢。

4

4 回答 4

7
  1. select databasepropertyex('MyDatabaseName', 'IsAnsiNullsEnabled')会告诉你数据库默认值。Hitesh 的回答将告诉您当前会话的价值。
  2. 数据库有一个默认设置,每个会话都可以覆盖数据库默认值。
  3. 会话值。但是,MSDN 文档说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. 所以虽然它可能有效,但它肯定违反了最佳实践。
于 2012-06-30T09:03:40.120 回答
4

答案 1

您可以在下面运行查询以获取是否设置了 ANSI_NULLS。

DECLARE @options INT
SELECT @options = @@OPTIONS
IF ( (32 & @options) = 32 ) PRINT 'ANSI_NULLS'

如果打印ANSI_NULLSANSI_NULLS设置或未设置。

你可以在这里找到更多帮助http://www.mssqltips.com/sqlservertip/1415/determining-set-options-for-a-current-session-in-sql-server/

于 2012-06-30T08:50:16.083 回答
1

您可以使用此查询来获取给定数据库的属性:

SELECT is_ansi_nulls_on FROM sys.databases WHERE name = 'yourDatabase'
于 2017-02-01T14:27:52.110 回答
0

您可以通过以下方式检查所有设置

dbcc 用户选项

于 2014-03-12T06:21:44.117 回答