Costanti (Transact-SQL)

Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di AzureAzure Synapse Analytics AnalyticsPlatform 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.

Costanti di stringhe di caratteri

Le costanti stringa di caratteri sono racchiuse tra virgolette singole e includono caratteri alfanumerici (a-z, A-Ze90- ) e caratteri speciali, ad esempio il punto esclamativo (), il segno (!@) e il segno numerico ().# 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 altre informazioni, vedere Collation and Unicode Support.

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 1e 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

floatcostanti 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 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).

Vedi anche