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ştirir, ANSI null default seçenek veritabanı, true.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_OFF { 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.Varsayılan olarak, alter table ve create table Deyimleri kullanarak oluşturulan yeni sütunlar değildir set ANSI_NULL_DFLT_OFF on, olduğunda sütun null atanabilirlik durumunu açıkça belirtilmemişse, null.set ANSI_NULL_DFLT_OFF açık bir null kullanılarak 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 set 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 her zaman null veya not null, create table ve alter table deyimleri.

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

İzinler

Üyelik gerektiren public rolü.

Örnekler

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

USE AdventureWorks2008R2;
GO

-- Set the 'ANSI null default' database option to true by executing 
-- ALTER DATABASE.
GO
ALTER DATABASE AdventureWorks2008R2 SET ANSI_NULL_DEFAULT ON;
GO
-- Create table t1.
CREATE TABLE t1 (a TINYINT);
GO
-- NULL INSERT should succeed.
INSERT INTO t1 (a) VALUES (NULL);
GO

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

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

-- This illustrates the effect of having both the database
-- option and SET option disabled.
-- Set the 'ANSI null default' database option to false.
ALTER DATABASE AdventureWorks2008R2 SET ANSI_NULL_DEFAULT OFF;
GO
-- Create table t4.
CREATE TABLE t4 (a tinyint) ;
GO 
-- NULL INSERT should fail.
INSERT INTO t4 (a) VALUES (null);
GO

-- SET ANSI_NULL_DFLT_OFF to ON and create table t5.
SET ANSI_NULL_DFLT_OFF ON;
GO
CREATE TABLE t5 (a tinyint);
GO 
-- NULL insert should fail.
INSERT INTO t5 (a) VALUES (null);
GO

-- SET ANSI_NULL_DFLT_OFF to OFF and create table t6.
SET ANSI_NULL_DFLT_OFF OFF;
GO
CREATE TABLE t6 (a tinyint); 
GO 
-- NULL insert should fail.
INSERT INTO t6 (a) VALUES (null);
GO

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