Costanti (Transact-SQL)
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.
Costanti di stringhe di caratteri
Le costanti di stringhe di caratteri sono racchiuse tra virgolette singole e includono caratteri alfanumerici (a-z, A-Z e 0-9) e caratteri speciali, ad esempio il punto esclamativo (!), il simbolo di chiocciola (@) e il simbolo di cancelletto (#). A queste costanti vengono assegnate le regole di confronto predefinite del database corrente, a meno che non siano state specificate regole di confronto specifiche tramite la 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.Se per una connessione l'opzione QUOTED_IDENTIFIER è impostata su OFF, le stringhe di caratteri possono essere racchiuse tra virgolette doppie. Il provider Microsoft SQL Server Native Client e il driver ODBC tuttavia utilizzano automaticamente l'opzione 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. Ciò non è necessario nel caso di stringhe 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 per valori di carattere superiori a 8000 byte vengono tipizzate come dati varchar(max).
Stringhe Unicode
Il formato delle stringhe Unicode è simile a quello delle stringhe di caratteri, ma sono precedute da un identificatore N, che nello standard SQL-92 sta per National Language. Il prefisso N deve essere maiuscolo. 'Michél', ad esempio, è una costante di caratteri, mentre N'Michél' è una costante Unicode. Le costanti Unicode vengono interpretate come dati Unicode e non vengono valutate in base a 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. Non vi sono assegnate tuttavia le regole di confronto predefinite del database corrente, a meno che non siano state specificate regole di confronto specifiche tramite la clausola COLLATE. I dati Unicode vengono archiviati utilizzando 2 byte per carattere, mentre per i dati di caratteri viene utilizzato 1 byte per carattere. Per ulteriori informazioni, vedere Utilizzo dei dati Unicode.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 racchiuse 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).
Costanti bit
Le costanti bit vengono rappresentate dai numeri 0 o 1 e non vengono racchiuse tra virgolette. I numeri maggiori di uno vengono convertiti nel numero uno.Costanti datetime
Le costanti datetime vengono rappresentate tramite valori di data di tipo carattere in formati specifici e sono racchiuse tra virgolette singole. Per ulteriori informazioni sui formati per le costanti datetime, vedere Utilizzo di dati relativi a data e ora.Di seguito sono riportati esempi di costanti datetime.
'December 5, 1985' '5 December, 1985' '851205' '12/5/98'
Esempi di costanti di ora
'14:30:24' '04:24 PM'
Costanti integer
Le costanti integer sono rappresentate da una stringa di numeri non racchiusa tra virgolette e priva di separatori decimali. Le costanti integer devono essere numeri interi e non includere decimali.Di seguito sono riportati esempi di costanti integer.
1894 2
Costanti decimal
Le costanti decimal vengono rappresentate da una stringa di numeri non racchiusa tra virgolette e con un separatore decimale.Di seguito sono riportati esempi di costanti decimal.
1894.1204 2.0
Costanti float e real
Le costanti float e real vengono rappresentate con la notazione scientifica.Di seguito sono riportati esempi di costanti float o real.
101.5E5 0.5E-2
Costanti money
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 vengono racchiuse tra virgolette.In SQL Server non vengono imposte regole di raggruppamento quali, ad esempio, l'inserimento di un punto (.) ogni tre cifre nelle stringhe che rappresentano valori monetari.
Nota
I punti verranno ignorati in qualsiasi posizione nella costante letterale money specificata.
Di seguito sono riportati esempi di costanti money.
$12 $542023.14
Costanti uniqueidentifier
Le costanti uniqueidentifier sono stringhe che rappresentano un 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
Specificazione di 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. Se l'operatore unario + o - non viene applicato, le costanti numeriche utilizzano il segno positivo.
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
SQL Server supporta le costanti di stringhe di caratteri e Unicode che supportano regole di confronto avanzate. Per ulteriori informazioni, vedere la clausola COLLATE (Transact-SQL).
Vedere anche