Costanti (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)
Una costante, denominata anche valore letterale o scalare, è un simbolo che rappresenta un valore di dati specifico. Il formato di una costante dipende dal tipo di dati del valore che essa rappresenta.
Nota
Il termine costante nello sviluppo di applicazioni e il concetto di una costante in Transact-SQL (T-SQL) non sono uguali. Non esiste un modo specifico per impostare un valore statico globale in T-SQL. Le costanti in T-SQL sono equivalenti ai valori letterali stringa.
Costanti di stringhe di caratteri
Le costanti stringa di caratteri sono racchiuse tra virgolette singole e includono caratteri alfanumerici (a
-z
,Z
A
- e ) e9
0
- caratteri speciali, ad esempio il punto esclamativo (!
), il segno@
() e il segno di numero ().#
Alle costanti di stringhe di caratteri vengono assegnate le regole di confronto predefinite del database corrente. Se viene usata la clausola COLLATE, la conversione in base alla tabella codici predefinita del database viene comunque eseguita prima della conversione in base alle regole di confronto specificate dalla clausola COLLATE. Le stringhe di caratteri immesse dagli utenti vengono valutate in base alla tabella codici in uso nel computer e, se necessario, vengono convertite in base alla tabella codici predefinita del database.
Nota
Se vengono specificate le regole di confronto abilitate per UTF8 usando la clausola COLLATE, la conversione in base alla tabella codici predefinita del database viene comunque eseguita prima della conversione in base alle regole di confronto specificate dalla clausola COLLATE. La conversione non viene eseguita direttamente in base alle regole di confronto abilitate per Unicode specificate. Per altre informazioni, vedere Stringa Unicode.
Se per una connessione l'opzione QUOTED_IDENTIFIER è impostata su OFF, le stringhe di caratteri possono essere racchiuse tra virgolette doppie, ma Microsoft OLE DB Driver per SQL Server e ODBC Driver per SQL Server usano automaticamente SET QUOTED_IDENTIFIER ON
. È consigliabile utilizzare le virgolette singole.
Se una stringa di caratteri racchiusa tra virgolette singole include virgolette singole, queste devono essere rappresentare con due virgolette singole. Questa operazione non è necessaria nelle stringhe incorporate tra virgolette doppie.
Di seguito sono riportati esempi di stringhe di caratteri.
'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"
Le stringhe vuote vengono rappresentate da due virgolette singole che non racchiudono alcun contenuto. In modalità di compatibilità 6.x, una stringa vuota viene gestita come spazio singolo.
Le costanti di stringhe di caratteri supportano regole di confronto avanzate.
Nota
Le costanti carattere di dimensioni superiori a 8000 byte vengono tipizzate come dati varchar(max).
Stringhe Unicode
Le stringhe Unicode hanno un formato simile alle stringhe di caratteri, ma sono precedute da un N
identificatore (N è l'acronimo di National Language nello standard SQL-92).
Importante
Il N
prefisso deve essere maiuscolo.
Ad esempio, 'Michél'
è una costante di caratteri, mentre N'Michél'
è una costante Unicode. Le costanti Unicode vengono interpretate come dati Unicode e non vengono valutate usando una tabella codici. Alle costanti Unicode vengono associate regole di confronto, la cui funzione principale è il controllo dei confronti e la rilevanza di maiuscole e minuscole. Alle costanti Unicode vengono assegnate le regole di confronto predefinite del database corrente. Se viene usata la clausola COLLATE, la conversione in base alle regole di confronto predefinite del database viene comunque eseguita prima della conversione in base alle regole di confronto specificate dalla clausola COLLATE. Per ulteriori informazioni, vedi Supporto per Unicode e regole di confronto.
Le costanti di stringa Unicode supportano le regole di confronto avanzate.
Nota
Le costanti Unicode superiori a 8000 byte vengono tipizzate come dati nvarchar(max).
Costanti binarie
Le costanti binarie hanno il prefisso 0x
e sono stringhe di numeri esadecimali Non sono racchiusi tra virgolette.
Di seguito sono riportati esempi di stringhe binarie.
0xAE
0x12Ef
0x69048AEFDD010E
0x (empty binary string)
Nota
Le costanti binarie superiori a 8000 byte vengono tipizzate come dati varbinary(max).
bit
Costanti
le costanti bit sono rappresentate dai numeri 0
o 1
e non sono racchiuse tra virgolette. Se viene usato un numero maggiore di 1
, viene convertito in 1
.
datetime
Costanti
Le costanti datetime vengono rappresentate tramite valori di data di tipo carattere in formati specifici e sono racchiuse tra virgolette singole.
Di seguito sono riportati esempi di costanti datetime:
'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'
Esempi di costanti datetime:
'14:30:24'
'04:24 PM'
integer
Costanti
Le costanti integer sono rappresentate da una stringa di numeri che non sono racchiusi tra virgolette e non contengono punti decimali. Le costanti integer devono essere numeri interi. Non possono contenere decimali.
Di seguito sono riportati esempi di costanti integer:
1894
2
decimal
Costanti
le costanti decimali sono rappresentate da una stringa di numeri che non sono racchiusi tra virgolette e contengono un separatore decimale.
Di seguito sono riportati esempi di costanti decimal:
1894.1204
2.0
float
costanti e real
Le costanti float e real sono rappresentate tramite la notazione scientifica.
Di seguito sono riportati esempi di valori float o real:
101.5E5
0.5E-2
money
Costanti
Le costanti money vengono rappresentate come stringhe di numeri con separatore decimale facoltativo e un simbolo di valuta come prefisso facoltativo. le costanti money non sono racchiuse tra virgolette.
SQL Server non applica alcun tipo di regole di raggruppamento, ad esempio l'inserimento di una virgola (,
) ogni tre cifre nelle stringhe che rappresentano denaro.
Nota
Le virgole vengono ignorate in qualsiasi punto di un valore letterale stringa di cui viene eseguito il cast al tipo di dati money .
Di seguito sono riportati esempi di costanti money:
$12
$542023.14
$-23
uniqueidentifier
Costanti
Le costanti uniqueidentifier sono stringhe che rappresentano un identificatore univoco globale (GUID). Possono essere specificate in formato di stringa binaria o di caratteri.
In entrambi gli esempi seguenti viene specificato lo stesso GUID.
'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff
Specificare numeri negativi e positivi
Per indicare se un numero è positivo o negativo, è necessario includere l'operatore unario +
o -
in una costante numerica. In tal modo viene creata un'espressione numerica che rappresenta il valore numerico con segno. Le costanti numeriche usano valori positivi quando gli +
operatori unari o -
non vengono applicati.
Espressioni integer con segno:
+145345234
-2147483648
Espressioni decimal con segno:
+145345234.2234
-2147483648.10
Espressioni float con segno:
+123E-3
-12E5
Espressioni money con segno:
-$45.56
+$423456.99
Regole di confronto avanzate
Il motore di database supporta le costanti di stringhe di caratteri e Unicode che supportano le regole di confronto avanzate. Per altre informazioni, vedere la clausola COLLATE (Transact-SQL).