Constantes (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Une constante, également appelée valeur littérale ou scalaire, est un symbole représentant une valeur de donnée spécifique. Le format d'une constante dépend du type de données dont elle représente la valeur.

Remarque

La constante de terme dans le développement d’applications et le concept d’une constante dans Transact-SQL (T-SQL) ne sont pas identiques. Il n’existe aucun moyen spécifique de définir une valeur statique globale dans T-SQL. Les constantes dans T-SQL sont l’équivalent de valeurs littérales de chaîne.

Constantes de type chaîne de caractères

Les constantes de type chaîne de caractères sont placée entre des guillemets simples et incluent des caractères alphanumériques (a-zA-Z et 0-9) ainsi que des caractères spéciaux comme le point d’exclamation (!), l’arobase (@) et le dièse (#). Le classement par défaut de la base de données active est attribué aux constantes de la chaîne de caractères. Si la clause COLLATE est utilisée, la conversion vers la page de codes par défaut de la base de données se produit toujours avant la conversion vers le classement spécifié par la clause COLLATE. Les chaînes de caractères tapées par l'utilisateur sont analysées au moyen de la page de codes de l'ordinateur et sont converties, le cas échéant, dans la page de codes par défaut de la base de données.

Notes

Lorsqu’un classement UTF8 est spécifié à l’aide de la clause COLLATE, la conversion vers la page de code par défaut de la base de données se produit toujours avant la conversion du classement spécifié par la clause COLLATE. La conversion n’est pas effectuée directement vers le classement Unicode spécifié. Pour plus d'informations, consultez Chaîne Unicode.

Si l'option QUOTED_IDENTIFIER a été désactivée (OFF) pour une connexion, les chaînes de caractères peuvent également être placées entre des guillemets doubles. Notez que OLE DB Driver pour SQL Server et ODBC Driver pour SQL Server Microsoft utilisent automatiquement SET QUOTED_IDENTIFIER ON. Il est recommandé d'utiliser des guillemets simples.

Si un guillemet simple est inséré dans une chaîne de caractères placée entre des guillemets simples, celui-ci doit être représenté par deux guillemets simples. Ceci n’est pas nécessaire dans les chaînes entourées de guillemets doubles.

Voici des exemples de chaînes de caractères :

'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"

Les chaînes vides sont représentées par deux guillemets simples, sans aucun caractère ou espace entre eux. En mode de compatibilité 6.x, une chaîne vide est traitée comme un espace simple.

Les constantes de chaînes de caractères prennent en charge les classements améliorés.

Notes

Les constantes de caractères dont la taille est supérieure à 8 000 octets sont des données de type varchar(max).

Chaînes Unicode

Les chaînes Unicode ont un format similaire aux chaînes de caractères, mais elles sont précédées d’un identificateur N (N correspond à National Language (Langue nationale) dans le standard SQL-92).

Important

Le préfixe N doit être en majuscule.

Par exemple, 'Michél' est une constante de type caractère tandis que N'Michél' est une constante Unicode. Les constantes Unicode sont interprétées comme des données Unicode et ne sont pas évaluées en utilisant une page de codes. Les constantes Unicode présentent un classement, qui contrôle essentiellement les comparaisons et le respect de la casse. Le classement par défaut de la base de données active est attribué aux constantes Unicode. Si la clause COLLATE est utilisée, la conversion vers le classement par défaut de la base de données se produit toujours avant la conversion vers le classement spécifié par la clause COLLATE. Pour plus d’informations, consultez Prise en charge d’Unicode et du classement.

Les constantes de chaînes Unicode prennent en charge les classements évolués.

Notes

Les constantes Unicode dont la taille est supérieure à 8 000 octets sont des données de type nvarchar(max).

Constantes binaires

Une constante binaire a le préfixe 0x et se compose d'une chaîne de nombres hexadécimaux. Elles ne sont pas entourées de guillemets.

Voici des exemples de chaînes binaires :

0xAE
0x12Ef
0x69048AEFDD010E
0x  (empty binary string)

Notes

Les constantes binaires dont la taille est supérieure à 8 000 octets sont des données de type varbinary(max).

Constantes bit

Les constantes de type bit sont représentées par les nombres 0 ou 1, et elles ne sont pas entourées de guillemets. Si un nombre supérieur à 1 est utilisé, il est converti en 1.

Constantes datetime

Les constantes datetime sont représentées à l’aide de valeurs de date libellées avec des caractères dans un format spécifique. Elles sont entourées de guillemets simples.

Voici des exemples de constantes datetime :

'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'

Exemples de constantes datetime :

'14:30:24'
'04:24 PM'

Constantes integer

Les constantes de type integer sont représentées par une chaîne de nombres qui ne sont pas entourés de guillemets et qui ne contiennent pas de virgule décimale. Les constantes de type entier doivent être des nombres entiers ; ils ne peuvent pas contenir de décimales.

Voici des exemples de constantes entières :

1894
2

Constantes decimal

Les constantes de type decimal sont représentées par une chaîne de nombres qui ne sont pas entourés de guillemets et qui contiennent une virgule décimale.

Voici des exemples de constantes décimales :

1894.1204
2.0

Constantes float et real

Les constantes de type float et real sont représentées par la notation scientifique.

Voici des exemples de valeurs float ou real :

101.5E5
0.5E-2

Constantes money

Les constantes de type money sont représentées par une chaîne de nombres avec une virgule décimale facultative et peuvent être précédées d’un symbole monétaire. Les constantes de type money ne sont pas entourées de guillemets.

SQL Server n’impose aucune règle de regroupement, comme l’insertion d’une virgule (,) tous les trois chiffres dans les chaînes qui représentent une valeur monétaire.

Notes

Les virgules sont ignorées partout dans un littéral de chaîne qui est casté en un type de données money.

Voici des exemples de constantes money :

$12
$542023.14
$-23

Constantes uniqueidentifier

Les constantes de type uniqueidentifier correspondent à une chaîne représentant un GUID. Elles peuvent être spécifiées dans un format de chaîne de caractères ou binaire.

Les deux exemples ci-après spécifient le même identificateur globalement unique (GUID) :

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

Spécifier des nombres négatifs et positifs

Pour indiquer si un nombre est positif ou négatif, appliquez l’opérateur unaire + ou - à une constante numérique. Ceci crée une expression numérique représentant la valeur numérique signée. Les constantes numériques utilisent le positif quand les opérateurs unaires + ou - ne sont pas appliqués.

Expressions integer signées :

+145345234
-2147483648

Expressions decimal signées :

+145345234.2234
-2147483648.10

Expressions float signées :

+123E-3
-12E5

Expressions money signées :

-$45.56
+$423456.99

Classements améliorés

Moteur de base de données prend en charge les constantes de type caractère et chaîne Unicode qui prennent en charge des classements améliorés. Pour plus d’informations, consultez la clause COLLATE (Transact-SQL).