Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vytvoří objekt s názvem výchozí. Při vazbě ke sloupci nebo datovému typu alias určuje výchozí hodnota, která se má vložit do sloupce, ke kterému je objekt svázán (nebo do všech sloupců, pokud datový typ aliasu), pokud během vložení není explicitně zadána žádná hodnota.
Důležité
Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Místo toho použijte výchozí definice vytvořené pomocí klíčového DEFAULTALTER TABLE slova nebo CREATE TABLE.
Syntaxe
CREATE DEFAULT [ schema_name . ] default_name
AS constant_expression [ ; ]
Arguments
schema_name
Název schématu, do kterého patří výchozí nastavení.
default_name
Název výchozího nastavení. Výchozí názvy musí odpovídat pravidlům identifikátorů. Zadání výchozího jména vlastníka je volitelné.
constant_expression
Výraz, který obsahuje pouze konstantní hodnoty (nemůže obsahovat názvy žádných sloupců ani jiných databázových objektů). Můžete použít libovolnou konstantu, integrovanou funkci nebo matematický výraz s výjimkou těch, které obsahují datové typy aliasů. Uživatelem definované funkce nelze použít. Uzavírací znak a konstanty kalendářních dat do jednoduchých uvozovek ('); peněžní, celočíselné a plovoucí desetiny nevyžadují uvozovky. Binární data musí předcházet 0xa peněžní data musí předcházet znakem dolaru ($). Výchozí hodnota musí být kompatibilní s datovým typem sloupce.
Poznámky
V aktuální databázi můžete vytvořit pouze výchozí název. V databázi musí být výchozí názvy jedinečné podle schématu. Když vytvoříte výchozí hodnotu, použijte sp_bindefault ji k vytvoření vazby ke sloupci nebo k datovému typu aliasu.
Pokud výchozí hodnota není kompatibilní se sloupcem, ke kterému je vázán, SQL Server při pokusu o vložení výchozí hodnoty vygeneruje chybovou zprávu. Například není možné použít jako výchozí pro číselný sloupec.
Pokud je výchozí hodnota pro sloupec, na který je vázána, příliš dlouhá, je hodnota zkrácena.
CREATE DEFAULT příkazy nelze kombinovat s jinými příkazy Transact-SQL v jedné dávce.
Před vytvořením nového názvu musí být odstraněna výchozí hodnota. Výchozí hodnota musí být nevázaná spuštěním sp_unbindefault , než se vyřadí.
Pokud má sloupec přiřazené výchozí i pravidlo, nesmí výchozí hodnota pravidlo porušit. Výchozí hodnota, která je v konfliktu s pravidlem, se nikdy nevloží a SQL Server pokaždé, když se pokusí vložit výchozí hodnotu, vygeneruje chybovou zprávu.
Při vazbě na sloupec se vloží výchozí hodnota, když:
- Hodnota není explicitně vložena.
- K vložení výchozích hodnot se používají
DEFAULT VALUESklíčováDEFAULTslova neboINSERTklíčová slova.
Pokud zadáte NOT NULL při vytváření sloupce a nevytvoříte pro něj výchozí hodnotu, vygeneruje se chybová zpráva, když se uživateli nepodaří vytvořit položku v daném sloupci. Následující tabulka znázorňuje vztah mezi existencí výchozí hodnoty a definicí sloupce jako NULL nebo NOT NULL. Položky v tabulce zobrazují výsledek.
| Definice sloupce | Žádná položka, bez výchozího nastavení | Žádná položka, výchozí | Enter NULL, bez výchozího nastavení |
Zadejte NULL, výchozí |
|---|---|---|---|---|
NULL |
NULL |
Výchozí | NULL |
NULL |
NOT NULL |
Error | Výchozí | Error | Error |
Pokud chcete přejmenovat výchozí hodnotu, použijte sp_rename pro sestavu výchozí hodnotu .sp_help
Povolení
Aby uživatel mohl používat CREATE DEFAULTminimálně , musí mít CREATE DEFAULT oprávnění v aktuální databázi a ALTER oprávnění ke schématu, ve kterém se vytváří výchozí nastavení.
Examples
A. Vytvoření výchozího základního znaku
Následující příklad vytvoří znak výchozí název unknown.
USE AdventureWorks2022;
GO
CREATE DEFAULT phonedflt
AS 'unknown';
B. Vytvoření vazby výchozí hodnoty
Následující příklad vytvoří vazbu výchozího vytvořeného v příkladu A. Výchozí hodnota se projeví jenom v případě, že pro sloupec Phone tabulky není zadána Contact žádná položka.
Poznámka:
Vynechání jakékoli položky se liší od explicitního zápisu NULLINSERT v příkazu.
Vzhledem k tomu, že výchozí název phonedflt neexistuje, následující příkaz Transact-SQL selže. Tento příklad je určen pouze pro ilustraci.
USE AdventureWorks2022;
GO
EXECUTE sp_bindefault 'phonedflt', 'Person.PersonPhone.PhoneNumber';
Související obsah
- ZMĚNIT TABULKU (Transact-SQL)
- CREATE RULE (Transact-SQL)
- VYTVOŘIT TABULKU (Transact-SQL)
- DROP DEFAULT (Transact-SQL)
- PRAVIDLO O PROPADÁNÍ (Transact-SQL)
- Výrazy (Transact-SQL)
- INSERT (Transact-SQL)
- sp_bindefault (Transact-SQL)
- sp_help (Transact-SQL)
- sp_helptext (Transact-SQL)
- sp_rename (Transact-SQL)
- sp_unbindefault (Transact-SQL)