sql server 2005使用點滴(1)

iSQlServer發表於2009-07-23
看了這麼多天程式碼終於有點眉目了,開始看看別人的儲存過程。
自己也要開始寫了。
看到兩句,不太懂,上網查,終於弄懂了:
set ANSI_NULLS ON  
(指定在對空值使用等於 (=) 和不等於 (<>) 比較運算子時,這些運算子的 SQL-92 遵從行為,
SQL-92 標準要求對空值的等於 (=) 或不等於 (<>) 比較取值為 FALSE)
set QUOTED_IDENTIFIER ON
go
這些是 SQL-92 設定語句,使 SQL Server 2005 遵從 SQL-92 規則。 
當 SET QUOTED_IDENTIFIER 為 ON 時,識別符號可以由雙引號分隔,而文字必須由單引號分隔。
當 SET QUOTED_IDENTIFIER 為 OFF 時,識別符號不可加引號,且必須符合所有 Transact-SQL 識別符號規則。 
SQL-92 標準要求在對空值進行等於 (=) 或不等於 (<>) 比較時取值為 FALSE。
當 SET ANSI_NULLS 為 ON 時,即使 column_name 中包含空值,使用 WHERE column_name = NULL 的 SELECT 語句仍返回零行。即使 column_name 中包含非空值,使用 WHERE column_name <> NULL 的 SELECT 語句仍會返回零行。 
當 SET ANSI_NULLS 為 OFF 時,等於 (=) 和不等於 (<>) 比較運算子不遵從 SQL-92 標準。
使用 WHERE column_name = NULL 的 SELECT 語句返回 column_name 中包含空值的行。
使用 WHERE column_name <> NULL 的 SELECT 語句返回列中包含非空值的行。
此外,使用 WHERE column_name <> XYZ_value 的 SELECT 語句返回所有不為 XYZ_value 也不為 NULL 的行。 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-610001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章