set ANSI_NULL_DFLT_ON (Transact-sql)

Yeni sütun nullability varsayılan geçersiz kılmak için oturum davranışını ne zaman ANSI null varsayılan veritabanı için seçenek false. Değerini ayarlama hakkında daha fazla bilgi için ANSI null varsayılan, bakın alter veritabanı (Transact-sql).

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

SET ANSI_NULL_DFLT_ON {ON | OFF}

Açıklamalar

Sütun nullability create table ve alter table deyimleri belirtilen zaman bu ayar yalnızca yeni sütun nullability etkiler. set ANSI_NULL_DFLT_ON açık olduğunda, Sütun nullability durumunu açıkça belirtilmezse, create table ve alter table deyimleri kullanarak oluşturulan yeni sütunlar null değerlere izin. set ANSI_NULL_DFLT_ON not null veya açık bir null ile oluşturulan sütunlar etkilemez.

set ANSI_NULL_DFLT_OFF ve set ANSI_NULL_DFLT_ON on aynı anda ayarlanamıyor. Bir seçenek on olarak ayarlanmışsa, diğer seçenek off ayarlanır. Bu nedenle, ANSI_NULL_DFLT_OFF ya da ANSI_NULL_DFLT_ON on ayarlayabilir veya her ikisi de off ayarlayabilirsiniz. Her iki seçenek on olarak ayarlanmışsa, bu ayar (set ANSI_NULL_DFLT_OFF ya da set ANSI_NULL_DFLT_ON) etkili olur. off, iki seçenek ayarlanırsa SQL Serverdeğerini kullanır is_ansi_null_default_on sütununda sys.databases Katalog görünümü.

Bir daha güvenilir çalışması için Transact-SQLveritabanları farklı nullability ayarları ile kullanılan komut dosyalarını, bunun create table ve alter table deyimleri null olmayan veya null belirtmek daha iyi.

SQL ServerYerel istemci odbc sürücüsü ve SQL ServerYerel istemci ole db sağlayıcısı için SQL Serverotomatik olarak ANSI_NULL_DFLT_ON on when connecting. set ANSI_NULL_DFLT_ON için off bağlantıları gelen db kitaplık uygulamaları için varsayılandır.

set ANSI_NULL_DFLT_ON, ANSI_DEFAULTS SET on olduğunda etkinleştirilir.

set ANSI_NULL_DFLT_ON ayarı ayarlanır yürütme veya zaman değil ayrıştırma saati ve çalıştırın.

Tablolarda select INTO deyimi kullanılarak oluşturulduğunda, set ANSI_NULL_DFLT_ON ayarı uygulanmaz.

İzinler

Üyelik Genel rolü.

Örnekler

Aşağıdaki örnek etkilerini gösterir.Set SET ANSI_NULL_DFLT_ONiki ayarları ile ANSI null varsayılan veritabanı seçeneği.

USE AdventureWorks2012;
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 AdventureWorks2012 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 AdventureWorks2012 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 AdventureWorks2012 SET ANSI_NULL_DEFAULT ON;
GO

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

USE AdventureWorks2012;
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 AdventureWorks2012 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 AdventureWorks2012 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 AdventureWorks2012 SET ANSI_NULL_DEFAULT ON;
GO

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

Ayrıca bkz.

Başvuru

ALTER TABLE (Transact-SQL)

Tablo (Transact-sql) oluştur

Deyimiyle (Transact-sql) bırak

set ANSI_DEFAULTS (Transact-sql)

set ANSI_NULL_DFLT_OFF (Transact-sql)