Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Elenco dei tipi di dati in SQL Server 2017

Questo articolo contiene un riferimento rapido ai tipi di dati forniti dal sistema disponibili in SQL Server 2017, insieme ad alcune informazioni di base come la lunghezza massima in byte, la precisione, la scala e se il tipo di dati è nullable o meno (1 significa che è nullable, 0 significa che non è nullable).

Numeri esatti

Nome Lunghezza massima Precisione Scala Nullable?
bigint 8 19 0 1
bit 1 1 0 1
decimale 17 38 38 1
int 4 10 0 1
soldi 8 19 4 1
numerico 17 38 38 1
smallint 2 5 0 1
piccoli soldi 4 10 4 1
tinyint 1 3 0 1

Numeri approssimativi

Nome Lunghezza massima Precisione Scala Nullable?
galleggiante 8 53 0 1
reale 4 24 0 1

Data e ora

Nome Lunghezza massima Precisione Scala Nullable?
data 3 10 0 1
dataora2 8 27 7 1
dataora 8 23 3 1
datatimeoffset 10 34 7 1
smalldatetime 4 16 0 1
tempo 5 16 7 1

Stringhe di caratteri

Nome Lunghezza massima Precisione Scala Nullable?
carattere 8000 0 0 1
testo 16 0 0 1
varchar 8000 0 0 1

Stringhe di caratteri Unicode

Nome Lunghezza massima Precisione Scala Nullable?
nchar 8000 0 0 1
ntext 16 0 0 1
nvarchar 8000 0 0 1

Stringhe binarie

Nome Lunghezza massima Precisione Scala Nullable?
binario 8000 0 0 1
immagine 16 0 0 1
variabile 8000 0 0 1

Altri tipi di dati

Nome Lunghezza massima Precisione Scala Nullable?
ID gerarchico 892 0 0 1
variante_sql 8016 0 0 1
geometria -1 0 0 1
geografia -1 0 0 1
indicatore orario* 8 0 0 0
identificatore univoco 16 0 0 1
xml -1 0 0 1
nomesistema 256 0 0 0

* Il indicatore orario tipo di dati è sinonimo di rowversion tipo di dati. Vedi sotto per maggiori informazioni.

I tipi "cursore", "tabella" e "versione riga"

Ho recuperato le informazioni nelle tabelle precedenti tramite sys.types vista del catalogo di sistema. Oltre ai tipi di cui sopra, la documentazione di Microsoft sui tipi di dati elenca anche il cursore e tabella tipi, nonché rowversion invece di timestamp .

Il tipo "timestamp"

Microsoft consiglia che il timestamp la sintassi è deprecata. È consigliabile utilizzare ora rowversion invece di timestamp ove possibile nelle nostre dichiarazioni DDL.

Tuttavia, nel frattempo, potresti scoprire che le colonne sembrano ancora essere definite come timestamp anche quando specifichi esplicitamente rowversion durante la creazione (usando Transact-SQL). Tuttavia, Microsoft consiglia che questa è la sintassi corretta da utilizzare in futuro.

Tieni inoltre presente che timestamp in T-SQL/SQL Server è diverso dal timestamp tipo di dati definito nella norma ISO.

Sembra che il motivo per cui è stato deprecato sia dovuto alla confusione causata dal suo nome. Microsoft lo ha riconosciuto nel 2007 e ha consigliato che avrebbe cercato di affrontarlo in modo compatibile con le versioni precedenti.

Controlla il tuo database

Puoi recuperare le informazioni sul tipo di dati per i tuoi database utilizzando sys.types vista del sistema. Vedere Come restituire un elenco di tipi di dati in SQL Server per una spiegazione e degli esempi. L'esecuzione di questa visualizzazione restituisce anche qualsiasi alias e tipi definiti dall'utente presenti nel database.