Udostępnij za pośrednictwem


SET ANSI_NULL_DFLT_OFF (Transact-SQL)

Zmienia zachowanie sesja, aby zastąpić domyślne opcje dopuszczania wartości null nowych kolumn podczas Domyślna wartość null ANSI opcja dla bazy danych jest true. Aby uzyskać więcej informacji na temat ustawiania wartości dla Domyślna wartość null ANSI, see ALTER DATABASE języka Transact-SQL) i Setting Database Options.

Topic link iconKonwencje składni języka Transact-SQL

SET ANSI_NULL_DFLT_OFF { ON | OFF }

Remarks

Skanowanie jest wykonywane z tym samym semantyka jako transakcja używany jest poziom izolacji możliwy do SERIALIZACJI.S = użytkownika SQLU = użytkownik systemu Windows

Wartości ON nie można ustawić jednocześnie dla obu opcji — SET ANSI_NULL_DFLT_OFF i SET ANSI_NULL_DFLT_ON.Jeśli jedna opcja ma wartość ON, druga przyjmuje wartość OFF.W związku z tym wartość ON można ustawić tylko dla opcji ANSI_NULL_DFLT_OFF albo SET ANSI_NULL_DFLT_ON. Ewentualnie obie opcje mogą mieć wartość OFF.Jeśli którakolwiek z opcji ma wartość ON, ustawienie to (SET ANSI_NULL_DFLT_OFF lub SET ANSI_NULL_DFLT_ON) obowiązuje.Jeśli obie opcje mają wartość OFF, program SQL Server wykorzystuje wartość kolumny is_ansi_null_default_on zawartej w widoku wykazu sys.databases.

Do bardziej niezawodnego działania Transact-SQL skrypty, które są używane w bazach danych z różnych opcje dopuszczania wartości null ustawieniami, lepiej jest zawsze należy określić wartość NULL lub NOT NULL w instrukcji CREATE tabela i instrukcji ALTER tabela.

R = rola bazy danych

Uprawnienia

Członkostwo w grupie wymaga publiczne roli.

Przykłady

Poniższy przykład pokazuje wpływ SET ANSI_NULL_DFLT_OFF z obu ustawieniami Domyślna wartość null ANSI opcja bazy danych.

USE AdventureWorks;
GO

-- Set the 'ANSI null default' database option to true by executing 
-- ALTER DATABASE.
GO
ALTER DATABASE AdventureWorks 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 AdventureWorks 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
DROP TABLE t2
DROP TABLE t3
DROP TABLE t4
DROP TABLE t5
DROP TABLE t6