sql >> Databáze >  >> RDS >> Sqlserver

Seznam datových typů v SQL Server 2017

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.


  1. NÁVRAT NA POUŽITÍ Oracle v Javě (JDBC, Připravené prohlášení)

  2. Vypsat všechny sloupce s možnou hodnotou Null v databázi SQL Server

  3. 4 způsoby, jak změnit časové pásmo v Oracle

  4. Příklady CURRENT_TIME – MySQL