我可以用SET ANSI_NULLS OFF
或SET ANSI_NULLS ON
SQL Server中的ANSI_NULLS標誌?
問題#1我怎樣才能得到當前值改變SET ANSI_NULLS
價值?
問題#2確實設置了一個值應用於查詢嗎?表?實例?整個數據庫?
問題#3如果我進入公司,做if myNullParam <>null
,什麼是我應該檢查(DB模式查詢???)的地方,告訴他們 - 這要去工作,或不?
謝謝。
我可以用SET ANSI_NULLS OFF
或SET ANSI_NULLS ON
SQL Server中的ANSI_NULLS標誌?
問題#1我怎樣才能得到當前值改變SET ANSI_NULLS
價值?
問題#2確實設置了一個值應用於查詢嗎?表?實例?整個數據庫?
問題#3如果我進入公司,做if myNullParam <>null
,什麼是我應該檢查(DB模式查詢???)的地方,告訴他們 - 這要去工作,或不?
謝謝。
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.
因此,雖然它可能有效,但肯定會違反最佳做法。您的查詢不起作用,與Hitesh'es相反http://i.stack.imgur.com/HufaY.jpg –
@RoyiNamir:如何指定*您的*數據庫的名稱? :) –
(僅爲完整性)該文檔還說:'在SQL Server的未來版本中,ANSI_NULLS將始終爲ON,並且任何明確將該選項設置爲OFF的應用程序都將生成錯誤。 –
回答1
您可以運行下面的查詢,如果ANSI_NULLS設置或不就搞定了。
DECLARE @options INT
SELECT @options = @@OPTIONS
IF ((32 & @options) = 32) PRINT 'ANSI_NULLS'
如果打印ANSI_NULLS
然後ANSI_NULLS
設置或沒有設置。
您可以檢查所有通過以下所提及般
DBCC USEROPTIONS
您可以使用此查詢來獲取給定數據庫的屬性設置:
SELECT is_ansi_nulls_on FROM sys.databases WHERE name = 'yourDatabase'
@marc_s,謝謝糾正我。 (一如既往:)) –
不客氣! –