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ż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. |
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';
Zobacz także