Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le nom de l’objet de base de données est appelé son identificateur. Tout ce qui se trouve dans Microsoft SQL Server peut avoir un identificateur. Les serveurs, bases de données et objets de base de données, tels que les tables, les vues, les colonnes, les index, les déclencheurs, les procédures, les contraintes et les règles, peuvent avoir des identificateurs. Les identificateurs sont requis pour la plupart des objets, mais sont facultatifs pour certains objets tels que les contraintes.
Un identificateur d’objet est créé lorsque l’objet est défini. L’identificateur est ensuite utilisé pour référencer l’objet. Par exemple, l’instruction suivante crée une table avec l’identificateur TableX, et deux colonnes avec les identificateurs KeyCol et Description:
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))
Cette table a également une contrainte sans nom. La PRIMARY KEY contrainte n’a pas d’identificateur.
Le classement d’un identificateur dépend du niveau auquel il est défini. Le classement par défaut de l'instance est assigné aux identificateurs d'objets qui sont au niveau de l'instance, tels que les noms de connexion et de base de données. Les identificateurs d’objets d’une base de données, tels que les tables, les vues et les noms de colonnes, sont affectés au classement par défaut de la base de données. Par exemple, deux tables avec des noms qui diffèrent uniquement dans le cas peuvent être créées dans une base de données qui a un classement respectant la casse, mais ne peuvent pas être créées dans une base de données qui ne respecte pas la casse.
Remarque
Les noms des variables, ou les paramètres des fonctions et des procédures stockées doivent respecter les règles relatives aux identificateurs de Transact-SQL.
Classes d’identificateurs
Il existe deux classes d’identificateurs :
Identificateurs réguliers
Respectez les règles relatives au format des identificateurs. Les identificateurs réguliers ne sont pas délimités lorsqu’ils sont utilisés dans des instructions Transact-SQL.
SELECT *
FROM TableX
WHERE KeyCol = 124
Identificateurs délimités
Sont placés entre guillemets doubles (") ou crochets ([ ]). Les identificateurs qui respectent les règles pour le format des identificateurs peuvent ne pas être délimités. Par exemple:
SELECT *
FROM [TableX] --Delimiter is optional.
WHERE [KeyCol] = 124 --Delimiter is optional.
Les identificateurs qui ne respectent pas toutes les règles pour les identificateurs doivent être délimités dans une instruction Transact-SQL. Par exemple:
SELECT *
FROM [My Table] --Identifier contains a space and uses a reserved keyword.
WHERE [order] = 10 --Identifier is a reserved keyword.
Les identificateurs réguliers et délimités doivent contenir de 1 à 128 caractères. Pour les tables temporaires locales, l’identificateur peut avoir un maximum de 116 caractères.
Règles pour les identificateurs réguliers
Les noms de variables, de fonctions et de procédures stockées doivent respecter les règles suivantes pour les identificateurs Transact-SQL.
Le premier caractère doit être l’un des suivants :
Lettre définie par la norme Unicode 3.2. La définition Unicode des lettres inclut des caractères latins d’un à z, d’A à Z, ainsi que des caractères de lettres d’autres langues.
Trait de soulignement (_), au signe (@) ou au signe numérique (#).
Certains symboles au début d’un identificateur ont une signification particulière dans SQL Server. Un identificateur régulier qui commence par le signe at désigne toujours une variable ou un paramètre local et ne peut pas être utilisé comme nom d’un autre type d’objet. Un identificateur qui commence par un signe numérique désigne une table ou une procédure temporaire. Un identificateur qui commence par des signes numériques doubles (##) désigne un objet temporaire global. Bien que le signe numérique ou les caractères de signe numérique double puissent être utilisés pour commencer les noms d’autres types d’objets, nous vous déconseillons cette pratique.
Certaines fonctions Transact-SQL ont des noms commençant par des signes doubles (@@). Pour éviter toute confusion avec ces fonctions, vous ne devez pas utiliser de noms commençant par @@.
Les caractères suivants peuvent inclure les éléments suivants :
Lettres définies dans la norme Unicode 3.2.
Nombres décimaux provenant du latin de base ou d’autres scripts nationaux.
Signe de signe, dollar ($), signe numérique ou trait de soulignement.
L’identificateur ne doit pas être un mot réservé Transact-SQL. SQL Server réserve les versions majuscules et minuscules des mots réservés. Lorsque des identificateurs sont utilisés dans des instructions Transact-SQL, les identificateurs qui ne respectent pas ces règles doivent être délimités par des guillemets doubles ou des crochets. Les mots réservés dépendent du niveau de compatibilité de la base de données. Ce niveau peut être défini à l’aide de l’instruction ALTER DATABASE .
Les espaces incorporés ou les caractères spéciaux ne sont pas autorisés.
Les caractères supplémentaires ne sont pas autorisés.
Lorsque des identificateurs sont utilisés dans des instructions Transact-SQL, les identificateurs qui ne respectent pas ces règles doivent être délimités par des guillemets doubles ou des crochets.
Remarque
Certaines règles pour le format des identificateurs réguliers dépendent du niveau de compatibilité de la base de données. Ce niveau peut être défini à l’aide de ALTER DATABASE.
Voir aussi
ALTER TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
CRÉER UNE RÈGLE (Transact-SQL)
CRÉER TABLE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
CREATE VIEW (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
Mots clés réservés (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)