Sql-Server

表級 ANSI_NULL 設置有什麼相關性?

  • August 22, 2014

顯然,SQL Server 在創建表時會儲存目前的 ANSI_NULL 設置(請參閱此處此處的相關問題)。

但是,當我執行

SELECT * FROM myVeryOldTable WHERE someFieldWithNullValues = NULL

即使舊表是使用 ANSI_NULL OFF 創建的,我也得到零結果。因此,顯然,SQL Server 使用目前連接設置,即 ANSI_NULL ON。

如果是這樣的話,儲存在表中的設置有什麼不同(除了在各種情況下製造麻煩)?如果連接設置總是覆蓋表設置,為什麼還要儲存它?

表級 ANSI_NULLS 設置對於自動表級操作很重要,例如處理計算列時。這也適用於其他對象,例如觸發器(如此處所示

對於針對錶的操作(即查詢中的比較),連接適用 - 如果您不期望您主動執行的操作與自動操作之間的行為差異,這可能會非常令人困惑。

引用自:https://dba.stackexchange.com/questions/74636