Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Tworzy obiekt o nazwie domyślnej. Po powiązaniu z kolumną lub typem danych aliasu wartość domyślna określa wartość, która ma zostać wstawiona do kolumny, do której obiekt jest powiązany (lub do wszystkich kolumn, jeśli typu danych aliasu), gdy żadna wartość nie jest jawnie dostarczana podczas wstawiania.
Ważne
Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zamiast tego użyj domyślnych definicji utworzonych przy użyciu słowa kluczowego DEFAULTALTER TABLE lub CREATE TABLE.
Transact-SQL konwencje składni
Składnia
CREATE DEFAULT [ schema_name . ] default_name
AS constant_expression [ ; ]
Arguments
schema_name
Nazwa schematu, do którego należy wartość domyślna.
default_name
Nazwa domyślnego. Nazwy domyślne muszą być zgodne z regułami dotyczącymi identyfikatorów. Określenie domyślnej nazwy właściciela jest opcjonalne.
constant_expression
Wyrażenie zawierające tylko stałe wartości (nie może zawierać nazw żadnych kolumn ani innych obiektów bazy danych). Można użyć dowolnej stałej, wbudowanej funkcji lub wyrażenia matematycznego, z wyjątkiem tych, które zawierają typy danych aliasu. Nie można używać funkcji zdefiniowanych przez użytkownika. Ujęcie znaków i stałych dat w pojedynczych cudzysłowach ('); stałe pieniężne, całkowite i zmiennoprzecinkowe nie wymagają znaków cudzysłowu. Dane binarne muszą być poprzedzone 0xznakiem , a dane pieniężne muszą być poprzedzone znakiem dolara ($). Wartość domyślna musi być zgodna z typem danych kolumny.
Uwagi
Nazwę domyślną można utworzyć tylko w bieżącej bazie danych. W bazie danych nazwy domyślne muszą być unikatowe według schematu. Podczas tworzenia wartości domyślnej użyj polecenia sp_bindefault , aby powiązać ją z kolumną lub z typem danych aliasu.
Jeśli wartość domyślna nie jest zgodna z kolumną, do której jest powiązana, program SQL Server generuje komunikat o błędzie podczas próby wstawienia wartości domyślnej. Na przykład nie można użyć wartości domyślnej dla kolumny liczbowej .
Jeśli wartość domyślna jest zbyt długa dla kolumny, do której jest powiązana, wartość jest obcięta.
CREATE DEFAULT instrukcje nie mogą być łączone z innymi instrukcjami Transact-SQL w jednej partii.
Przed utworzeniem nowej nazwy należy porzucić wartość domyślną. Wartość domyślna musi być niezwiązana przez wykonanie polecenia sp_unbindefault przed usunięciem.
Jeśli kolumna ma skojarzona zarówno domyślną, jak i regułę, wartość domyślna nie może naruszać reguły. Wartość domyślna, która powoduje konflikt z regułą, nigdy nie jest wstawiana, a program SQL Server generuje komunikat o błędzie za każdym razem, gdy próbuje wstawić wartość domyślną.
Po powiązaniu z kolumną wartość domyślna jest wstawiana, gdy:
- Wartość nie jest jawnie wstawiona.
-
DEFAULT VALUESSłowa kluczowe lubDEFAULTsą używane doINSERTwstawiania wartości domyślnych.
Jeśli określisz NOT NULL podczas tworzenia kolumny i nie utworzysz dla niej wartości domyślnej, zostanie wygenerowany komunikat o błędzie, gdy użytkownik nie wprowadzi wpisu w tej kolumnie. W poniższej tabeli przedstawiono relację między istnieniem wartości domyślnej a definicją kolumny jako NULL lub NOT NULL. Wpisy w tabeli pokazują wynik.
| Definicja kolumny | Brak wpisu, brak wartości domyślnej | Brak wpisu, wartość domyślna | Wprowadź NULL, bez wartości domyślnej |
Wprowadź NULL, wartość domyślna |
|---|---|---|---|---|
NULL |
NULL |
Default | NULL |
NULL |
NOT NULL |
Error | Default | Error | Error |
Aby zmienić nazwę domyślną, użyj polecenia sp_rename W przypadku raportu domyślnie użyj polecenia sp_help.
Permissions
Aby użyć CREATE DEFAULTpolecenia , co najmniej użytkownik musi mieć CREATE DEFAULT uprawnienia w bieżącej bazie danych i ALTER uprawnienia do schematu, w którym jest tworzona wartość domyślna.
Przykłady
A. Tworzenie domyślnego znaku podstawowego
W poniższym przykładzie zostanie utworzony znak domyślny o nazwie unknown.
USE AdventureWorks2022;
GO
CREATE DEFAULT phonedflt
AS 'unknown';
B. Tworzenie powiązania domyślnego
Poniższy przykład wiąże wartość domyślną utworzoną w przykładzie A. Wartość domyślna ma zastosowanie tylko wtedy, gdy dla kolumny Phone tabeli nie określono Contact żadnego wpisu.
Uwaga / Notatka
Pominięcie dowolnego wpisu różni się od jawnego stwierdzenia NULL w instrukcji INSERT .
Ponieważ nazwa domyślna o nazwie phonedflt nie istnieje, następująca instrukcja Transact-SQL kończy się niepowodzeniem. Ten przykład dotyczy tylko ilustracji.
USE AdventureWorks2022;
GO
EXECUTE sp_bindefault 'phonedflt', 'Person.PersonPhone.PhoneNumber';
Treści powiązane
- ZMIEŃ TABELĘ (Transact-SQL)
- REGUŁA CREATE (Transact-SQL)
- CREATE TABLE (Transact-SQL)
- DROP DEFAULT (Transact-SQL)
- ZASADA UPUSZCZANIA (Transact-SQL)
- Wyrażenia (Transact-SQL)
- WSTAW (Transact-SQL)
- sp_bindefault (Transact-SQL)
- sp_help (Transact-SQL)
- sp_helptext (Transact-SQL)
- sp_rename (Transact-SQL)
- sp_unbindefault (Transact-SQL)