Tento článek obsahuje rychlý odkaz na datové typy dodávané systémem, které jsou k dispozici v SQL Server 2017, spolu s některými základními informacemi, jako je maximální délka v bajtech, přesnost, měřítko a zda je datový typ s možnou hodnotou Null či nikoli (1 znamená, že je možné použít hodnotu null, 0 znamená, že nelze použít hodnotu null).
Přesná čísla
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| bigint | 8 | 19 | 0 | 1 |
| bit | 1 | 1 | 0 | 1 |
| desítkové | 17 | 38 | 38 | 1 |
| int | 4 | 10 | 0 | 1 |
| peníze | 8 | 19 | 4 | 1 |
| numerické | 17 | 38 | 38 | 1 |
| smallint | 2 | 5 | 0 | 1 |
| malé peníze | 4 | 10 | 4 | 1 |
| tinyint | 1 | 3 | 0 | 1 |
Přibližná čísla
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| plovoucí | 8 | 53 | 0 | 1 |
| skutečný | 4 | 24 | 0 | 1 |
Datum a čas
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| datum | 3 | 10 | 0 | 1 |
| datetime2 | 8 | 27 | 7 | 1 |
| datetime | 8 | 23 | 3 | 1 |
| datetimeoffset | 10 | 34 | 7 | 1 |
| smalldatetime | 4 | 16 | 0 | 1 |
| čas | 5 | 16 | 7 | 1 |
Řetězce znaků
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| char | 8000 | 0 | 0 | 1 |
| text | 16 | 0 | 0 | 1 |
| varchar | 8000 | 0 | 0 | 1 |
Řetězce znaků Unicode
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| nchar | 8000 | 0 | 0 | 1 |
| ntext | 16 | 0 | 0 | 1 |
| nvarchar | 8000 | 0 | 0 | 1 |
Binární řetězce
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| binární | 8000 | 0 | 0 | 1 |
| obrázek | 16 | 0 | 0 | 1 |
| varbinární | 8000 | 0 | 0 | 1 |
Další typy dat
| Jméno | Maximální délka | Přesnost | Měřítko | S možností null? |
|---|---|---|---|---|
| hierarchyid | 892 | 0 | 0 | 1 |
| sql_variant | 8016 | 0 | 0 | 1 |
| geometrie | -1 | 0 | 0 | 1 |
| geografie | -1 | 0 | 0 | 1 |
| časové razítko* | 8 | 0 | 0 | 0 |
| jedinečný identifikátor | 16 | 0 | 0 | 1 |
| xml | -1 | 0 | 0 | 1 |
| název systému | 256 | 0 | 0 | 0 |
* Časové razítko datový typ je synonymem pro rowversion datový typ. Další informace naleznete níže.
Typy „kurzor“, „tabulka“ a „verze řádku“
Získal jsem informace ve výše uvedených tabulkách prostřednictvím sys.types zobrazení katalogu systému. Kromě výše uvedených typů je v dokumentaci k datovým typům společnosti Microsoft uveden také kurzor a tabulka typy a také rowversion místo časového razítka .
Typ „časového razítka“
Společnost Microsoft doporučuje, aby časové razítko syntaxe je zastaralá. Nyní doporučujeme používat rowversion místo časového razítka kdekoli je to možné v našich prohlášeních DDL.
Mezitím však můžete zjistit, že sloupce jsou stále definovány jako časové razítko i když výslovně zadáte rowversion při jejich vytváření (pomocí Transact-SQL). Společnost Microsoft nicméně doporučuje, že se jedná o správnou syntaxi, která se má používat.
Všimněte si také, že časové razítko v T-SQL/SQL Server se liší od časového razítka datový typ definovaný v normě ISO.
Zdá se, že důvodem zamítnutí je zmatek způsobený jeho názvem. Microsoft to uznal v roce 2007 a doporučil, že se to pokusí řešit zpětně kompatibilním způsobem v budoucích verzích.
Zkontrolujte svou vlastní databázi
Informace o typu dat pro své vlastní databáze můžete získat pomocí sys.types systémový pohled. Vysvětlení a příklady najdete v tématu Jak vrátit seznam datových typů na serveru SQL. Spuštění tohoto zobrazení také vrátí všechny aliasy a uživatelem definované typy, které jsou v databázi.