我與SET ANSI_NULL下表設置爲ONSET ANSI_NULL是開啓狀態,但仍然被返回NULL行
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tblStandard5columnCustomerDetails]
(
[Id] [int] NOT NULL,
[FName] [varchar](60) NULL,
[Address] [varchar](50) NULL,
[PhoneNumber] [varchar](11) NULL,
[LName] [varchar](60) NULL
) ON [PRIMARY]
GO
並插入下面的一個記錄:
Insert Into [dbo].[tblStandard5columnCustomerDetails]
VALUES
(
1,
NULL,
NULL,
NULL,
NULL
);
根據微軟的文章使用Select語句時,我不應該返回任何行WHERE column_name = NULL
當SET ANSI_NULLS爲ON時, SELECT語句使用WHERE column_name = NULL即使在 column_name中存在空值,也會返回零行。即使column_name中存在非空值,使用WHERE column_name <> NULL 的SELECT語句也會返回零行。
但當執行這個查詢
select FNAME From [dbo].[tblStandard5columnCustomerDetails] WHERE FName IS NULL
我返回一行與NULL
爲什麼值?
請訪問http://小號tackoverflow.com/questions/9766717/in-sql-server-what-does-set-ansi-nulls-on-mean?rq=1 –