Constantes (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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
-z
A
-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 typées par les utilisateurs sont évaluées via la page de codes de l’ordinateur et sont traduites dans la page de codes par défaut de la base de données si nécessaire.
Remarque
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 booléennes
Les constantes booléennes (bit) sont représentées par les nombres 0
ou 1
, et ne sont pas placées entre guillemets. Si un nombre supérieur à ce qui 1
est utilisé, il est converti en 1
.
Constantes date/heure
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 entières
Les constantes entières (int) sont représentées par une chaîne de nombres qui ne sont pas placés entre guillemets et ne contiennent pas de décimales. les constantes int doivent être des nombres entiers ; ils ne peuvent pas contenir de décimales.
Voici des exemples de constantes int :
1894
2
Constantes décimales
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 à virgule flottante
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 monétaires
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 GUID
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 int 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 .