Aracılığıyla paylaş


set ANSI_NULL_DFLT_OFF (Transact-SQL)

Yeni sütun varsayılan null atanabilirlik geçersiz kılmak için oturum davranışını değiştiren, ANSI null default seçenek veritabanı, false.Değerini ayarlama hakkında daha fazla bilgi için ANSI null defaultbakın ALTER DATABASE (Transact-SQL) ve Veritabanı seçeneklerini ayarlama.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

SET ANSI_NULL_DFLT_ON {ON | OFF}

Açıklamalar

sütun null atanabilirlik , create table ve alter table deyimleri belirtilmemişse, bu ayar yalnızca yeni sütun null atanabilirlik etkiler.set ANSI_NULL_DFLT_OFF on olarak ayarlandığında, sütun null atanabilirlik durumunu açıkça belirtilmemişse, alter table ve create table Deyimleri kullanarak oluşturulan yeni sütunlar null değerlere izin.set ANSI_NULL_DFLT_OFF açık bir null ile oluşturulan sütunlar etkilemez değil veya not null.

set ANSI_NULL_DFLT_OFF ve set ANSI_NULL_DFLT_OFF küme on saataynı olamaz.Bir seçenek küme açıksa, diğer küme seçeneğidir.Bu nedenle, ANSI_NULL_DFLT_OFF veya ANSI_NULL_DFLT_OFF küme üzerinde olabilir ya da her ikisi kapalı küme olabilir.Her iki seçenek on olarak ayarlanmışsa, bu ayar (set ANSI_NULL_DFLT_OFF veya set ANSI_NULL_DFLT_OFF) etkili olur.İki seçenek küme , varsa SQL Server değerini kullanır is_ansi_null_default_on sütun sys.databases Katalog görünümü.

Bir daha güvenilir çalışması için Transact-SQL veritabanları farklı null atanabilirlik ayarları ile kullanılan komut dosyalarını olduğu daha iyi yapmak null veya not null, create table ve alter table deyimleri.

SQL Server Yerel istemci odbc sürücüsü ve SQL Server yerel istemci ole DB sağlayıcısı için SQL Server otomatik olarak küme ANSI_NULL_DFLT_OFF bağlanırken açık.DByapılan bağlantılar için varsayılan set ANSI_NULL_DFLT_OFF için Kapalı'dır-kitaplık uygulamaları.

set ANSI_DEFAULTS on olarak ayarlandığında, set ANSI_NULL_DFLT_OFF etkinleştirilir.

set ANSI_NULL_DFLT_OFF ayarı yürütmek sırasında küme veya çalışma saat ve ayrıştırma saatzaman.

select INTO deyimkullanarak tabloları oluşturulduğunda set ANSI_NULL_DFLT_OFF ayarı uygulanmaz.

İzinler

Üyelik gerektiren public rolü.

Örnekler

Aşağıdaki örnek, etkilerini gösterir SET ANSI_NULL_DFLT_ON için her iki ayar ile ANSI null default veritabanı seçeneği.

USE AdventureWorks2008R2;
GO

-- The code from this point on demonstrates that SET ANSI_NULL_DFLT_ON
-- has an effect when the 'ANSI null default' for the database is false.
-- Set the 'ANSI null default' database option to false by executing
-- ALTER DATABASE.
ALTER DATABASE AdventureWorks2008R2 SET ANSI_NULL_DEFAULT OFF;
GO
-- Create table t1.
CREATE TABLE t1 (a TINYINT) ;
GO 
-- NULL INSERT should fail.
INSERT INTO t1 (a) VALUES (NULL);
GO

-- SET ANSI_NULL_DFLT_ON to ON and create table t2.
SET ANSI_NULL_DFLT_ON ON;
GO
CREATE TABLE t2 (a TINYINT);
GO 
-- NULL insert should succeed.
INSERT INTO t2 (a) VALUES (NULL);
GO

-- SET ANSI_NULL_DFLT_ON to OFF and create table t3.
SET ANSI_NULL_DFLT_ON OFF;
GO
CREATE TABLE t3 (a TINYINT);
GO
-- NULL insert should fail.
INSERT INTO t3 (a) VALUES (NULL);
GO

-- The code from this point on demonstrates that SET ANSI_NULL_DFLT_ON 
-- has no effect when the 'ANSI null default' for the database is true.
-- Set the 'ANSI null default' database option to true.
ALTER DATABASE AdventureWorks2008R2 SET ANSI_NULL_DEFAULT ON
GO

-- Create table t4.
CREATE TABLE t4 (a TINYINT);
GO 
-- NULL INSERT should succeed.
INSERT INTO t4 (a) VALUES (NULL);
GO

-- SET ANSI_NULL_DFLT_ON to ON and create table t5.
SET ANSI_NULL_DFLT_ON ON;
GO
CREATE TABLE t5 (a TINYINT);
GO 
-- NULL INSERT should succeed.
INSERT INTO t5 (a) VALUES (NULL);
GO

-- SET ANSI_NULL_DFLT_ON to OFF and create table t6.
SET ANSI_NULL_DFLT_ON OFF;
GO
CREATE TABLE t6 (a TINYINT);
GO 
-- NULL INSERT should succeed.
INSERT INTO t6 (a) VALUES (NULL);
GO

-- Set the 'ANSI null default' database option to false.
ALTER DATABASE AdventureWorks2008R2 SET ANSI_NULL_DEFAULT ON;
GO

-- Drop tables t1 through t6.
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
DROP TABLE t4;
DROP TABLE t5;
DROP TABLE t6;