为什么在数据库级别关闭时会在新会话中启用ansi_null?

时间:2013-05-26 23:22:44

标签: tsql null sql-server-2008-r2

在数据库选项中,ANSI NULLS Enabled选项设置为false。我可以通过运行来进一步确认这一点:

SELECT DATABASEPROPERTYEX('mydb', 'IsAnsiNullsEnabled')

给了我0.

有趣的是,每当我从同一个数据库打开一个新的查询窗口并运行它时:

IF (NULL = NULL)
BEGIN
print 'true'
END
ELSE
begin
PRINT 'false'
END
每次都给我'假'。如果我通过运行手动关闭ansi_nulls,它只给我'真':

SET ANSI_NULLS OFF

这是为什么?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Management Studio(SSMS),则可以在默认查询选项中设置它。

要检查此项,请单击“工具...选项”以打开“选项”对话框。然后导航到“查询执行> SQL Server> ANSI”。

数据库设置是默认设置,仅在未指定会话,查询或连接设置时使用。