int, bigint, smallint e tinyint (Transact-SQL)
Data aggiornamento: 14 aprile 2006
Tipi di dati numerici esatti che utilizzano dati integer.
Tipo di dati | Intervallo | Archiviazione |
---|---|---|
bigint |
da -2^63 (-9,223,372,036,854,775,808) a 2^63-1 (9,223,372,036,854,775,807) |
8 byte |
int |
da -2^31 (-2,147,483,648) a 2^31-1 (2,147,483,647) |
4 byte |
smallint |
da -2^15 (-32,768) a 2^15-1 (32,767) |
2 byte |
tinyint |
da 0 a 255 |
1 byte |
Osservazioni
Il tipo di dati int è il tipo di dati integer primario in SQL Server 2005. Il tipo di dati bigint è stato progettato per essere utilizzato quando i valori integer potrebbero non rientrare nell'intervallo supportato dal tipo di dati int.
Nell'ordine di precedenza dei tipi di dati bigint è compreso tra i tipi di dati smallmoney e int.
Le funzioni restituiscono bigint solo se l'espressione per i parametri è di tipo bigint. In SQL Server gli altri tipi di dati (tinyint, smallint e int) non vengono convertiti automaticamente nel tipo di dati di livello superiore bigint.
Attenzione: |
---|
Quando si utilizzano gli operatori aritmetici +, -, *, / o % per eseguire conversioni implicite o esplicite di costanti di tipo int, smallint, tinyint o bigint nei tipi di dati float, real, decimal o numeric, le regole applicate da SQL Server per calcolare il tipo di dati e la precisione dei risultati delle espressioni variano a seconda del fatto che per la query sia attivata o meno la parametrizzazione automatica.
Per questo motivo, in alcuni casi espressioni simili nelle query possono dare risultati diversi. Se per una query non è attivata la parametrizzazione automatica, il valore costante viene prima convertito nel tipo numeric, la cui precisione è sufficiente a contenere il valore della costante, quindi viene convertito nel tipo di dati specificato. Il valore costante 1, ad esempio, viene convertito in numeric (1, 0) e il valore costante 250 viene convertito in numeric (3, 0).
Se per una query è attivata la parametrizzazione automatica, il valore costante viene sempre convertito in numeric (10, 0) prima di essere convertito nel tipo di dati finale. Se viene utilizzato l'operatore /, sia la precisione del tipo di risultati che il valore del risultato di query simili possono essere diversi. Ad esempio, il valore del risultato di una query con parametrizzazione automatica che include l'espressione SELECT CAST (1.0 / 7 AS float) sarà diverso dal valore del risultato della stessa query ma senza parametrizzazione automatica, perché il risultati della query con parametrizzazione automatica verranno troncati per rientrare nel tipo di dati numeric (10, 0). Per ulteriori informazioni sulle query con parametri, vedere Parametrizzazione semplice. |
Vedere anche
Riferimento
ALTER TABLE (Transact-SQL)
CAST e CONVERT (Transact-SQL)
CREATE TABLE (Transact-SQL)
Tipi di dati (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
SET @local\_variable (Transact-SQL)
UPDATE (Transact-SQL)
Altre risorse
Conversione del tipo di dati (Motore di database)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
14 aprile 2006 |
|