Utwórz domyślne (Transact-SQL)

Tworzy obiekt o nazwie domyślne.Powiązany z kolumna lub typ danych alias , domyślnie określa wartość ma zostać wstawiony do kolumna , z którą związany jest obiekt (lub do wszystkich kolumn w przypadek typu danych alias ) gdy żadna wartość jawnie dostarczone podczas wstawiania.

Ważna informacjaWażne:

Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.Można użyć domyślnej definicje utworzonych przy użyciu słowa kluczowego domyślne instrukcji ALTER TABLE lub CREATE TABLE.Aby uzyskać więcej informacji, zobacz Tworzenie i modyfikowanie DOMYŚLNYCH definicje.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CREATE DEFAULT [ schema_name . ] default_name 
AS constant_expression [ ; ]

Argumenty

  • schema_name
    Jest to nazwa schematu, do której należy domyślnie.

  • default_name
    Jest to nazwa domyślna.Domyślne nazwy muszą być zgodne z zasadami identyfikatorów.Określanie domyślnej nazwy właściciela jest opcjonalne.

  • constant_expression
    Jest wyrażenie zawierającą tylko wartości stała (nie może zawierać nazwy kolumn lub inne obiekty bazy danych).Każdy stała, wbudowanych funkcjalub wyrażenie matematyczne można, z wyjątkiem tych, które zawierają typy danych alias .Nie można używać funkcji zdefiniowanej przez użytkownika...Ująć w pojedynczy cudzysłów stałych znaków i data ('); walutowej, całkowitych i zmiennoprzecinkowych stałych nie wymagają cudzysłowów.Dane binarne musi być poprzedzony 0 x, a dane dotyczące kwot pieniężnych musi być poprzedzona znakiem dolara ($).Wartość domyślna musi być zgodny z typem danych kolumna .

Uwagi

Domyślna nazwa mogą być tworzone tylko w bieżącej bazie danych.W bazie danych nazwy domyślne muszą być unikatowe przez schemat.Podczas tworzenia domyślnej za pomocą sp_bindefault do powiązania, kolumna lub typ danych alias .

Jeśli domyślny nie jest zgodny z kolumna , z którym jest związane, SQL Server generuje komunikat o błędzie podczas próby wstawienia wartości domyślne.Na przykład brak nie używane jako domyślne dla numeryczne kolumna.

Jeśli wartość domyślna jest zbyt długa dla kolumna , z którym jest związane, wartość zostanie obcięta.

Nie można łączyć instrukcji CREATE DEFAULT z innymi Transact-SQL instrukcji w jednej partia.

Domyślnie być odrzucone, przed utworzeniem nowego o tej samej nazwie i domyślna musi niezwiązane przez wykonywanie sp_unbindefault zanim zostanie odrzucone.

Jeśli kolumna ma domyślnie i reguły skojarzone z nim, wartość domyślna musi nie naruszają reguły.Domyślnie powoduje konflikt z regułą nigdy nie jest włożona, a SQL Server generuje komunikat o błędzie każdego czas prób do wstawiania domyślnej.

Powiązany kolumnawartość domyślna zostanie wstawiony po:

  • Wartość nie jest jawnie wstawione.

  • WARTOŚCI domyślne lub domyślne słowa kluczowe są używane z WSTAWIĆ do wstawienia wartości domyślne.

Jeśli nie podana jest wartość NULL, podczas tworzenia kolumna i domyślnie nie jest tworzony dla niego, generowany jest komunikat o błędzie, gdy użytkownik nie dokona zapisu w tej kolumna.Poniższa tabela ilustruje relację między istnienie domyślne i definicji kolumna jako NULL lub NOT NULL.Wpisy w tabela pokazuje wynik.

Definicja kolumny

Brak wpisu, brak domyślnej

Brak wpisu domyślnego

Wprowadź wartość NULL, brak domyślnej

Wprowadź wartość NULL, domyślne

NULL

NULL

wartość/akcja domyślna

NULL

NULL

NIEDOZWOLONE WARTOŚCI NULL

Błąd

wartość/akcja domyślna

Błąd

Błąd

Aby zmienić nazwę domyślną, należy użyć sp_rename.W przypadku raportu domyślnie za pomocą sp_help.

Uprawnienia

wykonać Utwórz domyślne, co najmniej użytkownik musi mieć utworzyć domyślne uprawnienia w bieżącej bazie danych i ZMIEŃ na schemacie, w którym tworzona jest domyślna.

Przykłady

A.Tworzenie domyślnej prostego znaku

Poniższy przykład tworzy domyślną znaków o nazwie unknown.

USE AdventureWorks2008R2;
GO
CREATE DEFAULT phonedflt AS 'unknown';

B.Domyślnie powiązania

Poniższy przykład wiąże domyślną utworzone w przykładzie A.Domyślnie staje się skuteczne tylko wtedy, gdy nie podano wpisu dla Phone kolumna Contact tabela.Należy zauważyć, że pominięcie wpis różni się od jawnie określając wartość NULL w INSERT instrukcja.

Ponieważ domyślny o nazwie phonedflt nie istnieje następujący Transact-SQL instrukcja kończy się niepowodzeniem.W tym przykładzie służy wyłącznie jako ilustracja.

USE AdventureWorks2008R2;
GO
sp_bindefault 'phonedflt', 'Person.PersonPhone.PhoneNumber';