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í na:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Sklad v Microsoft Fabric
SQL databáze v Microsoft Fabric
Určuje vlastnosti sloupce přidaného do tabulky pomocí funkce ALTER TABLE.
Syntax
column_name <data_type>
[ FILESTREAM ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT constant_expression [ WITH VALUES ]
| IDENTITY [ ( seed , increment ) ] [ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
[ SPARSE ]
[ ENCRYPTED WITH
( COLUMN_ENCRYPTION_KEY = key_name ,
ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED } ,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) ]
[ MASKED WITH ( FUNCTION = ' mask_function ') ]
[ <column_constraint> [ ...n ] ]
<data type> ::=
[ type_schema_name . ] type_name
[ ( precision [ , scale ] | max |
[ { CONTENT | DOCUMENT } ] xml_schema_collection ) ]
<column_constraint> ::=
[ CONSTRAINT constraint_name ]
{ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[
WITH FILLFACTOR = fillfactor
| WITH ( < index_option > [ , ...n ] )
]
[ ON { partition_scheme_name ( partition_column_name )
| filegroup | "default" } ]
| [ FOREIGN KEY ]
REFERENCES [ schema_name . ] referenced_table_name [ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
Arguments
column_name
Název sloupce, který se má změnit, přidat nebo vynechat. column_name může obsahovat 1 až 128 znaků. U nových sloupců vytvořených s datovým typem časového razítka je možné vynechat column_name . Pokud pro sloupec datového typu časového razítka není zadán žádný column_name, použije se časové razítko názvu.
[ type_schema_name. ] type_name
Datový typ pro sloupec, který je přidán, a schéma, do kterého patří.
type_name může být:
Systémový datový typ Microsoft SQL Serveru.
Datový typ aliasu založený na systémovém datovém typu SQL Serveru. Datové typy aliasů musí být vytvořeny pomocí dříve
CREATE TYPE, než je lze použít v definici tabulky.Uživatelem definovaný typ rozhraní Microsoft .NET Framework a schéma, do kterého patří. Před použitím
CREATE TYPEv definici tabulky musí být vytvořen uživatelem definovaný typ rozhraní .NET Framework.
Pokud není zadán type_schema_name , odkazuje databázový stroj Společnosti Microsoft na type_name v následujícím pořadí:
Systémový datový typ SYSTÉMU SQL Server.
Výchozí schéma aktuálního uživatele v aktuální databázi.
Schéma dbo v aktuální databázi.
precision
Přesnost zadaného datového typu. Další informace o platných hodnotách přesnosti naleznete v tématu Přesnost, Měřítko a Délka.
scale
Měřítko pro zadaný datový typ. Další informace o platných hodnotách měřítka naleznete v tématu Přesnost, Měřítko a Délka.
max
Platí pouze pro datové typy varchar, nvarchar a varbinary . Tyto (max) datové typy se používají k ukládání 2^31 bajtů znaků a binárních dat a 2^30 bajtů dat Unicode.
CONTENT
Určuje, že každá instance datového typu XML v column_name může obsahovat více prvků nejvyšší úrovně.
CONTENT platí pouze pro datový typ XML a lze jej zadat pouze v případě , že je zadán xml_schema_collection. Pokud není zadáno, CONTENT jedná se o výchozí chování.
DOCUMENT
Určuje, že každá instance datového typu XML v column_name může obsahovat pouze jeden prvek nejvyšší úrovně.
DOCUMENT platí pouze pro datový typ XML a lze jej zadat pouze v případě , že je zadán xml_schema_collection.
xml_schema_collection
platí pro: SQL Server 2008 (10.0.x) a novější verze.
Platí pouze pro datový typ XML pro přidružení kolekce schématu XML k typu. Před přidáním sloupce datového typu XML do schématu musí být schéma nejprve vytvořeno v databázi pomocí PŘÍKAZU CREATE XML SCHEMA COLLECTION.
FILESTREAM
Volitelně určuje atribut úložiště FILESTREAM pro sloupec, který má type_namevarbinary(max).
Pokud je fileSTREAM zadán pro sloupec, tabulka musí mít také sloupec jedinečného datového typu, který má atribut ROWGUIDCOL. Tento sloupec nesmí povolit hodnoty null a musí mít omezení JEDINEČNÉ nebo PRIMÁRNÍ KLÍČ s jedním sloupcem. Hodnota GUID sloupce je zadána aplikací při vkládání dat nebo ve výchozím omezení.
Sloupec ROWGUIDCOL nelze vynechat a související omezení nelze změnit, pokud je pro tabulku definovaný sloupec FILESTREAM. Sloupec ROWGUIDCOL lze vynechat až po vyřazení posledního sloupce FILESTREAM.
Pokud je pro sloupec zadaný atribut úložiště FILESTREAM, všechny hodnoty pro tento sloupec jsou uloženy v kontejneru dat FILESTREAM v systému souborů.
Příklad, který ukazuje, jak použít definici sloupce, viz FILESTREAM.
COLLATION_NAME COLLATE
Určuje kolaci sloupce. Pokud není uvedeno, sloupci je přiřazeno výchozí řazení databáze. Název kolace může být buď název kolace Systému Windows, nebo název kolace SQL. Seznam a další informace naleznete v tématu Název kolace systému Windows a název kolace SYSTÉMU SQL Server.
Klauzuli COLLATE lze použít k určení kolací pouze sloupců datových typů char, varchar, nchar a nvarchar .
Další informace o klauzuli COLLATE najdete v tématu COLLATE.
NULL | NE NULL
Určuje, zda NULL jsou ve sloupci povoleny hodnoty.
NULL není výhradně omezení, ale lze jej zadat stejně jako NOT NULL.
[ OMEZENÍ constraint_name ]
Určuje začátek DEFAULT definice hodnoty. Chcete-li zachovat kompatibilitu se staršími verzemi SQL Serveru, je možné přiřadit název omezení .DEFAULT
constraint_name musí dodržovat pravidla identifikátorů s tím rozdílem, že název nemůže začínat znakem čísla (#). Pokud není zadán constraint_name , přiřadí se k DEFAULT definici systémový vygenerovaný název.
DEFAULT
Je klíčové slovo, které určuje výchozí hodnotu sloupce.
DEFAULT definice lze použít k zadání hodnot pro nový sloupec v existujících řádcích dat.
DEFAULT definice nelze použít pro sloupce časového razítka nebo sloupce s IDENTITY vlastností. Pokud je pro sloupec typu definované uživatelem zadána výchozí hodnota, musí tento typ podporovat implicitní převod z constant_expression na uživatelem definovaný typ.
constant_expression
Je literálová hodnota, NULLfunkce nebo systémová funkce použitá jako výchozí hodnota sloupce. Pokud se používá se sloupcem definovaným uživatelem definovaným typem rozhraní .NET Framework, implementace typu musí podporovat implicitní převod z constant_expression na uživatelem definovaný typ.
S HODNOTAMI
Pokud sloupec při přidávání sloupce a DEFAULT omezení povoluje hodnotu NULLS, WITH VALUES nastaví hodnotu nového sloupce na hodnotu zadanou DEFAULT constant_expression pro existující řádky.
Pokud přidaný sloupec nepovoluje hodnotu NULLS pro existující řádky, hodnota sloupce bude vždy nastavena na hodnotu zadanou v DEFAULT constant expression.
Počínaje SQL Serverem 2012 (11.x) se může jednat o operaci metadat , která přidává sloupce typu not-null-as-an-online-operation.
Pokud se použije i v případě, že se související sloupec nepřidává, nemá žádný vliv.
Určuje, že hodnota zadaná v DEFAULT constant_expression je uložena v novém sloupci, který je přidán do existujících řádků. Pokud přidaný sloupec umožňuje hodnoty null a funkce WITH VALUES je zadána, výchozí hodnota se uloží do nového sloupce přidaného do existujících řádků. Pokud WITH VALUES není zadán pro sloupce, které povolují hodnoty null, hodnota NULL je uložena v novém sloupci ve stávajících řádcích. Pokud nový sloupec nepovoluje hodnoty null, je výchozí hodnota uložena v nových řádcích bez ohledu na to, zda je zadána funkce WITH VALUES.
IDENTITY
Určuje, že nový sloupec je sloupec identity. Databázový stroj SQL Serveru poskytuje jedinečnou přírůstkovou hodnotu sloupce. Když do existujících tabulek přidáte sloupce identifikátorů, čísla identit se přidají do existujících řádků tabulky s počátečními a přírůstkovými hodnotami. Pořadí, ve kterém jsou řádky aktualizovány, není zaručeno. Čísla identit se také generují pro všechny nové řádky, které se přidají.
Sloupce identity se běžně používají s omezeními PRIMARY KEY , která slouží jako jedinečný identifikátor řádku tabulky. Vlastnost IDENTITY lze přiřadit k malému,malémuintu, int, bigintu, desítkovému(p;0) nebo číselnému sloupci(p;0). Pro každou tabulku je možné vytvořit pouze jeden sloupec identity. Klíčové DEFAULT slovo a vázané výchozí hodnoty nelze použít se sloupcem identity. Buď musí být zadáno počáteční i přírůstkové, nebo ani jedno. Pokud není zadána žádná, výchozí hodnota je (1,1).
Note
Existující sloupec tabulky nelze upravit tak, aby se přidala IDENTITY vlastnost.
Přidání sloupce identity do publikované tabulky není podporováno, protože při replikaci sloupce do odběratele může dojít k nekonvergenci. Hodnoty ve sloupci identity v Publisheru závisí na pořadí, ve kterém jsou řádky ovlivněné tabulky fyzicky uložené. Řádky mohou být uloženy odlišně u odběratele; proto může být hodnota sloupce identity pro stejné řádky odlišná.
Chcete-li zakázat IDENTITY vlastnost sloupce tím, že povolíte explicitní vložení hodnot, použijte set IDENTITY_INSERT.
semeno Hodnota použitá pro první řádek načtený do tabulky.
přírůstek Přírůstková hodnota přidaná k hodnotě identity předchozího řádku, který je načten.
NE PRO REPLIKACI
platí pro: SQL Server 2008 (10.0.x) a novější verze.
Lze zadat pro IDENTITY vlastnost. Pokud je pro IDENTITY vlastnost zadána tato klauzule, hodnoty se ve sloupcích identit při provádění operací vložení agentů replikace nezvýšují.
ROWGUIDCOL
platí pro: SQL Server 2008 (10.0.x) a novější verze.
Určuje, že sloupec je sloupec globálně jedinečným sloupcem identifikátoru řádku.
ROWGUIDCOL lze přiřadit pouze ke sloupci uniqueidentifier a jako sloupec lze určit pouze jeden sloupec uniqueidentifier pro ROWGUIDCOL každou tabulku.
ROWGUIDCOL nelze přiřadit ke sloupcům uživatelsky definovaných datových typů.
ROWGUIDCOL nevynucuje jedinečnost hodnot uložených ve sloupci.
ROWGUIDCOL Také negeneruje automaticky hodnoty pro nové řádky, které jsou vloženy do tabulky. Pokud chcete vygenerovat jedinečné hodnoty pro každý sloupec, použijte NEWID() funkci pro INSERT příkazy nebo jako výchozí pro sloupec zadejte NEWID() funkci. Další informace naleznete v tématu NEWID (Transact-SQL) a INSERT (Transact-SQL).
SPARSE
Označuje, že sloupec je řídký sloupec. Úložiště řídkých sloupců je optimalizované pro hodnoty null. Řídké sloupce nelze označit jako NOT NULL. Další omezení a další informace o řídkých sloupcích najdete v tématu Použití řídkých sloupců.
<column_constraint>
Definice argumentů omezení sloupce najdete v tématu column_constraint (Transact-SQL).
ZAŠIFROVANÉ S
Určuje šifrování sloupců pomocí funkce Always Encrypted .
ENCRYPTED WITH není podporován v SQL databázích v Microsoft Fabric.
COLUMN_ENCRYPTION_KEY = key_name
Určuje šifrovací klíč sloupce. Další informace naleznete v tématu CREATE COLUMN ENCRYPTION KEY (Transact-SQL).
ENCRYPTION_TYPE = { DETERMINISTIC | NÁHODNÉ }
Deterministické šifrování používá metodu, která vždy generuje stejnou zašifrovanou hodnotu pro libovolnou danou hodnotu prostého textu. Použití deterministického šifrování umožňuje vyhledávání pomocí porovnání rovnosti, seskupování a spojování tabulek pomocí spojení rovnosti na základě šifrovaných hodnot, ale může také umožnit neoprávněným uživatelům odhadnout informace o šifrovaných hodnotách prozkoumáním vzorů v šifrovaném sloupci. Spojení dvou tabulek se sloupci šifrovanými deterministicky je možné pouze v případě, že jsou oba sloupce šifrované pomocí stejného šifrovacího klíče sloupce. Deterministické šifrování musí pro sloupce znaků použít sloupcovou kolaci s pořadím řazení binary2.
randomizované šifrování používá metodu, která šifruje data méně předvídatelným způsobem. Randomizované šifrování je bezpečnější, ale brání jakýmkoli výpočtům a indexování u šifrovaných sloupců, pokud instance SQL Serveru nepodporuje funkci Always Encrypted se zabezpečenými enklávy.
Pokud používáte funkci Always Encrypted (bez zabezpečených enkláv), použijte deterministické šifrování sloupců, které se mají prohledávat pomocí parametrů nebo seskupování parametrů, například čísla ID státní správy. Použijte randomizované šifrování dat, jako je číslo platební karty, které není seskupené s jinými záznamy nebo slouží ke spojení tabulek, a které se nehledají, protože používáte jiné sloupce (například číslo transakce) k vyhledání řádku, který obsahuje šifrovaný sloupec zájmu.
Pokud používáte funkci Always Encrypted se zabezpečenými enklávy, je doporučeným typem šifrování randomizované šifrování.
Sloupce musí být opravňujícím datovým typem.
ALGORITHM
platí pro: SQL Server 2016 (13.x) a novější, SQL Database.
Musí být "AEAD_AES_256_CBC_HMAC_SHA_256".
Další informace včetně omezení funkcí najdete v tématu
PŘIDAT MASKOVANOU FUNKCÍ (FUNCTION = ' mask_function ')
platí pro: SQL Server 2016 (13.x) a novější, SQL Database.
Určuje dynamickou masku dat. mask_function je název funkce maskování s příslušnými parametry. K dispozici jsou následující funkce:
default()email()partial()random()
Parametry funkce najdete v tématu dynamického maskování dat.
Remarks
Pokud je sloupec přidaný s datovým typem uniqueidentifier , může být definován s výchozím nastavením, který funkci používá NEWID() k zadání jedinečných hodnot identifikátoru v novém sloupci pro každý existující řádek v tabulce. Další informace naleznete v tématu NEWID (Transact-SQL).
Databázový stroj nevynucuje pořadí pro určení DEFAULTIDENTITYROWGUIDCOL, nebo omezení sloupců v definici sloupce.
Příkaz ALTER TABLE selže, pokud přidání sloupce způsobí, že velikost datového řádku překročí 8 060 bajtů.
Examples
Příklady najdete v tématu ALTER TABLE (Transact-SQL).