Costanti (Motore di database)

Una costante è un simbolo che rappresenta un valore di dati specifico. Il formato di una costante dipende dal tipo di dati del valore che essa rappresenta. Le costanti sono denominate anche valori letterali. Nelle tabelle seguenti vengono illustrati alcuni esempi di utilizzo delle costanti.

Costanti utilizzate in

Esempio

Stringhe di caratteri

'O''Brien'

'The level for job_id: %d should be between %d and %d.'

Stringhe Unicode

N'Michl'

Costanti stringhe binarie

0x12Ef

0x69048AEFDD010E

Costanti bit

0 oppure 1

Costanti datetime

'April 15, 1998'

'04/15/98'

'14:30:24'

'04:24 PM'

Costanti integer

1894

2

Costanti decimal

1894.1204

2.0

Costanti float e real

101.5E5

0.5E-2

Costanti money

$12

$542023.14

Costanti uniqueidentifier

0xff19966f868b11d0b42d00c04fc964ff

'6F9619FF-8B86-D011-B42D-00C04FC964FF'

Per specificare il segno del valore delle costanti numeriche, vengono utilizzati gli operatori unari + e -.

+$156.45
-73.52E8
-129.42
+442

Alle costanti di tipo carattere e Unicode vengono assegnate le regole di confronto predefinite del database corrente, a meno che non siano state assegnate regole di confronto specifiche tramite la clausola COLLATE, ad esempio:

'abc' COLLATE French_CI_AI
N'lustig' COLLATE German_Phonebook_CS_AS

Utilizzo di costanti in Transact-SQL

In Transact-SQL le costanti vengono utilizzate in molti modi diversi. Di seguito vengono riportati alcuni esempi.

  • Come valore costante in un'espressione aritmetica:

    SELECT Price + $.10
    FROM MyTable
    
  • Come valore di dati per il confronto di una colonna in una clausola WHERE:

    SELECT *
    FROM MyTable
    WHERE LastName = 'O''Brien'
    
  • Come valore di dati da inserire in una variabile:

    SET @DecimalVar = -1200.02
    
  • Come valore di dati da inserire in una colonna della riga corrente. Questo valore viene specificato con la clausola SET dell'istruzione UPDATE oppure con la clausola VALUES di un'istruzione INSERT:

    UPDATE MyTable
    SET Price = $99.99
    WHERE PartNmbr = 1234
    INSERT INTO MyTable VALUES (1235, $88.88)
    
  • Come stringa di caratteri che specifica il testo del messaggio generato da un'istruzione PRINT o RAISERROR:

    PRINT 'This is a message.'
    
  • Come valore da verificare in un'istruzione condizionale, ad esempio IF o le funzioni CASE:

    IF (@@SALESTOTAL > $100000.00)
       EXECUTE Give_Bonus_Procedure