küme ANSI_NULLS (Transact-SQL)

Eşit (=) ve () olmayan eşit için ISO uyumlu davranışını belirtir.<>) değerleri ile kullanıldığında, karşılaştırma işleçleri null.

Important noteImportant Note:

Bir sonraki sürümünde SQL ServerANSI_NULLS her zaman AÇıK olması ve KAPALı seçeneğini'kesin olarak küme herhangi bir uygulama, bir hata üretecektir. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Topic link iconTransact-SQL sözdizimi kuralları

SET ANSI_NULLS { ON | OFF }

Remarks

küme ANSI_NULLS ON, bir SELECT olduğunda deyim WHERE kullanan column_name = NULL null değerleri olsa bile, satır döndürür sıfır column_name. A SELECT statement that uses WHERE column_name <> NULL returns zero rows even if there are nonnull values in column_name.

küme ANSI_NULLS eşit (=) ve () olmayan eşit için KAPALı olduğunda<>) karşılaştırma işleçleri ISO standart izleyin. Bir SELECT deyim WHERE kullanan column_name = NULL null değerleri olan satır döndürür. column_name. A SELECT statement that uses WHERE column_name <> NULL returns the rows that have nonnull values in the column.Also, a SELECT statement that uses WHERE column_name <> XYZ_value returns all rows that are not XYZ_value and that are not NULL.

küme ANSI_NULLS AÇıK olduğunda, boş (null) değer karşı tüm karşılaştırmalar için BILINMEYEN değerlendirin.küme ANSI_NULLS KAPALı olduğunda, veri değeri null (BOş) olduğunda, karşılaştırmalar boş (null) değer karşı tüm verilerin DOğRU olarak değerlendirin.küme ANSI_NULLS belirtilmezse, geçerli veritabanının ANSI_NULLS seçeneğinin ayar uygulanır.ANSI_NULLS veritabanı seçeneği hakkında daha fazla bilgi için bkz: ALTER DATABASE Transact-SQL) ve Veritabanı seçeneklerini ayarlama.

küme ANSI_NULLS ON yalnızca karşılaştırma, işlenen herhangi biri bir karşılaştırma NULL ya da bir hazır bilgi BOş olan bir değişken etkiler.Karşılaştırma için her iki sütun veya bileşik deyim, ayar karşılaştırma etkilemez.

Bir komut dosyası, amaçlandığı şekilde çalışıyorlar seçeneği veya küme ANSI_NULLS ayarına bakılmaksızın ANSI_NULLS veritabanı, IS NULL ve IS NOT null değerler içerebilecek karşılaştırmalar NULL kullanın.

Dağıtılmış sorgular çalıştırmak için küme ANSI_NULLS ON olarak ayarlanması gerekir.

küme ANSI_NULLS oluştururken veya hesaplanmış sütunları ya da dizin oluşturulmuş görünümler dizinleri değiştirme, AÇıK olması gerekir.If SET ANSI_NULLS is OFF, any CREATE, UPDATE, INSERT, and DELETE statements on tables with indexes on computed columns or indexed views will fail.SQL Server will return an error that lists all SET options that violate the required values.küme ANSI_NULLS, KAPALı olduğunda da, bir deyim çalıştırdığınızda SQL Server Hesaplanan sütunlar veya görünümler dizin değerlerini yoksay ve vardı gibi bu dizin tablo veya Görünüm seçme işlemi çözümlemek.

Not

ANSI_NULLS dizinlerde postalarla hesaplanan sütunlar veya dizin oluşturulmuş görünümler, gerekli değerlere ayarlanmalıdır yedi küme seçenekleri biridir.ANSI_PADDING, ANSI_WARNINGS ARITHABORT QUOTED_IDENTIFIER ve CONCAT_NULL_YIELDS_NULL seçenekleri de ON'olarak ayarlanmalıdır ve NUMERIC_ROUNDABORT KAPALı olarak ayarlanmalıdır.

The SQL Server Native istemci ODBC driver and SQL Server Native istemci OLE DB sağlayıcı for SQL Server automatically küme ANSI_NULLS to ON when connecting. Bu ayar, ODBC veri kaynakları, ODBC bağlantı özniteliklerini veya uygulama örneğine bağlanmadan önce küme olan bir OLE DB bağlantı özelliklerini yapılandırılabilir SQL Server. küme ANSI_NULLS için varsayılan değer KAPALı'dır.

küme ANSI_DEFAULTS AÇıK olduğunda, ANSI_NULLS küme etkinleştirilir.

küme ANSI_NULLS ayarını ayarlayın yürütmek veya saat ve çözümleme saat değil.

İzinler

Genel rol üyeliği gerekir.

Örnekler

Aşağıdaki örnek, eşit (kullanır.=) ve () eşittir.<>) ile karşılaştırmaları yapmak için karşılaştırma işleçleri NULL ve nonnull değerleri bir tablo. Bu örnek, ayrıca gösterir IS NULL etkilenmez SET ANSI_NULLS Ayar.

-- Create table t1 and insert values.
CREATE TABLE t1 (a INT NULL)
INSERT INTO t1 values (NULL)
INSERT INTO t1 values (0)
INSERT INTO t1 values (1)
GO

-- Print message and perform SELECT statements.
PRINT 'Testing default setting'
DECLARE @varname int
SELECT @varname = NULL
SELECT * 
FROM t1 
WHERE a = @varname
SELECT * 
FROM t1 
WHERE a <> @varname
SELECT * 
FROM t1 
WHERE a IS NULL
GO

-- SET ANSI_NULLS to ON and test.
PRINT 'Testing ANSI_NULLS ON'
SET ANSI_NULLS ON
GO
DECLARE @varname int
SELECT @varname = NULL
SELECT * 
FROM t1 
WHERE a = @varname
SELECT * 
FROM t1 
WHERE a <> @varname
SELECT * 
FROM t1 
WHERE a IS NULL
GO

-- SET ANSI_NULLS to OFF and test.
PRINT 'Testing SET ANSI_NULLS OFF'
SET ANSI_NULLS OFF
GO
DECLARE @varname int
SELECT @varname = NULL
SELECT * 
FROM t1 
WHERE a = @varname
SELECT * 
FROM t1 
WHERE a <> @varname
SELECT * 
FROM t1 
WHERE a IS NULL
GO

-- Drop table t1.
DROP TABLE t1