Identificateur de la base de donnéesDatabase Identifiers

Le nom d'un objet d'une base de données est son identificateur.The database object name is referred to as its identifier. Dans MicrosoftMicrosoft SQL ServerSQL Server , tous les éléments peuvent avoir un identificateur.Everything in MicrosoftMicrosoft SQL ServerSQL Server can have an identifier. Les serveurs, les bases de données et les objets de bases de données tels que les tables, les vues, les colonnes, les index, les déclencheurs, les procédures, les contraintes, les règles, etc. peuvent avoir des identificateurs.Servers, databases, and database objects, such as tables, views, columns, indexes, triggers, procedures, constraints, and rules, can have identifiers. La plupart des objets doivent avoir un identificateur ; les identificateurs sont facultatifs pour certains objets, tels que les contraintes.Identifiers are required for most objects, but are optional for some objects such as constraints.

L'identificateur d'un objet est créé lors de la définition de l'objet.An object identifier is created when the object is defined. L'identificateur est ensuite utilisé pour référencer l'objet.The identifier is then used to reference the object. L'instruction suivante, par exemple, crée une table avec l'identificateur TableX, et deux colonnes avec les identificateurs KeyCol et Description:For example, the following statement creates a table with the identifier TableX, and two columns with the identifiers KeyCol and Description:

CREATE TABLE TableX  
(KeyCol INT PRIMARY KEY, Description nvarchar(80))  

Cette table comporte également une contrainte sans nom.This table also has an unnamed constraint. La contrainte PRIMARY KEY n'a pas d'identificateur.The PRIMARY KEY constraint has no identifier.

Le classement d'un identificateur dépend du niveau auquel il est défini.The collation of an identifier depends on the level at which it is defined. 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.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Le classement par défaut de la base de données est affecté aux identificateurs d'objets qui appartiennent à la base de données, tels que les noms des tables, des vues et des colonnes.Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database. Par exemple, deux tables dont les noms diffèrent uniquement au niveau de la casse peuvent être créées dans une base de données dont le classement respecte la casse, mais pas dans une base de données dont le classement ne respecte pas la casse.For example, two tables with names that differ only in case can be created in a database that has case-sensitive collation, but cannot be created in a database that has case-insensitive collation.

Note

Les noms de variables, ou les paramètres des fonctions et des procédures stockées doivent toujours respecter les règles des identificateurs Transact-SQLTransact-SQL .The names of variables, or the parameters of functions and stored procedures must comply with the rules for Transact-SQLTransact-SQL identifiers.

Classes d'identificateursClasses of Identifiers

Il existe deux classes d'identificateurs :There are two classes of identifiers:

Identificateurs réguliersRegular identifiers
Les identificateurs réguliers respectent les règles relatives au format des identificateurs.Comply with the rules for the format of identifiers. Ils ne sont pas délimités lorsqu'ils sont utilisés dans des instructions Transact-SQLTransact-SQL .Regular identifiers are not delimited when they are used in Transact-SQLTransact-SQL statements.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

Identificateurs délimitésDelimited identifiers
Les identificateurs délimités sont mis entre guillemets (") ou entre crochets ([ ]).Are enclosed in double quotation marks (") or brackets ([ ]). Les identificateurs qui respectent les règles relatives au format des identificateurs peuvent ne pas être délimités.Identifiers that comply with the rules for the format of identifiers might not be delimited. Exemple :For example:

SELECT *  
FROM [TableX]         --Delimiter is optional.  
WHERE [KeyCol] = 124  --Delimiter is optional.  

Ceux qui ne respectent pas ces règles ne peuvent être utilisés dans une instruction Transact-SQLTransact-SQL qu'en étant délimités.Identifiers that do not comply with all the rules for identifiers must be delimited in a Transact-SQLTransact-SQL statement. Exemple :For example:

SELECT *  
FROM [My Table]      --Identifier contains a space and uses a reserved keyword.  
WHERE [order] = 10   --Identifier is a reserved keyword.  

Qu'ils soient réguliers ou délimités, les identificateurs doivent contenir de 1 à 128 caractères.Both regular and delimited identifiers must contain from 1 through 128 characters. Dans le cas des tables temporaires locales, l'identificateur peut contenir jusqu'à 116 caractères.For local temporary tables, the identifier can have a maximum of 116 characters.

Règles pour identificateurs réguliersRules for Regular Identifiers

Les noms de variables, de fonctions et de procédures stockées doivent toujours respecter les règles suivantes portant sur les identificateurs Transact-SQLTransact-SQL .The names of variables, functions, and stored procedures must comply with the following rules for Transact-SQLTransact-SQL identifiers.

  1. Le premier caractère doit être l'un des suivants :The first character must be one of the following:

    • Une des lettres définies par Unicode Standard 3,2.A letter as defined by the Unicode Standard 3.2. Elles incluent les caractères latins de a à z et de A à Z ainsi que des caractères alphabétiques d'autres langues.The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.

    • Les symboles trait de soulignement (), arobase (@) ou dièse (#).The underscore (), at sign (@), or number sign (#).

      Certains symboles au début d'un identificateur ont une signification particulière dans SQL ServerSQL Server.Certain symbols at the beginning of an identifier have special meaning in SQL ServerSQL Server. Un identificateur régulier qui commence par le signe arobase (@) dénote toujours une variable ou un paramètre local et ne peut pas être utilisé comme le nom d'un autre type d'objet.A regular identifier that starts with the at sign always denotes a local variable or parameter and cannot be used as the name of any other type of object. Un identificateur commençant par un symbole numéro indique un objet temporaire (table ou procédure).An identifier that starts with a number sign denotes a temporary table or procedure. Un identificateur commençant par le double signe # (##) indique un objet temporaire global.An identifier that starts with double number signs (##) denotes a global temporary object. Bien que les symboles dièse (#) et double dièse (##) puissent être utilisés pour commencer les noms d'autres types d'objets, nous ne recommandons pas cette pratique.Although the number sign or double number sign characters can be used to begin the names of other types of objects, we do not recommend this practice.

      Le nom de certaines fonctions Transact-SQLTransact-SQL commence par un double arobas (@@).Some Transact-SQLTransact-SQL functions have names that start with double at signs (@@). Pour éviter toute confusion avec ces fonctions, n’utilisez pas de noms commençant par @@.To avoid confusion with these functions, you should not use names that start with @@.

  2. Les caractères suivants peuvent inclure les éléments suivants :Subsequent characters can include the following:

    • Des lettres définies dans Unicode Standard 3,2.Letters as defined in the Unicode Standard 3.2.

    • Des nombres décimaux de Basic Latin ou d'autres scripts nationaux.Decimal numbers from either Basic Latin or other national scripts.

    • L'arobase, le symbole dollar ($), le symbole dièse ou le trait de soulignement.The at sign, dollar sign ($), number sign, or underscore.

  3. L'identificateur ne doit pas être un mot réservé Transact-SQLTransact-SQL .The identifier must not be a Transact-SQLTransact-SQL reserved word. SQL ServerSQL Server conserve les majuscules et les minuscules des mots réservés. reserves both the uppercase and lowercase versions of reserved words. Un identificateur qui ne respecte pas toutes ces règles doit toujours être délimité par des crochets ou des guillemets doubles lors de son utilisation dans une instruction Transact-SQLTransact-SQL .When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets. Les mots réservés dépendent du niveau de compatibilité de la base de données.The words that are reserved depend on the database compatibility level. Vous pouvez définir ce niveau avec l’instruction ALTER DATABASE .This level can be set by using the ALTER DATABASE statement.

  4. Les espaces incorporés ou les caractères spéciaux ne sont pas autorisés.Embedded spaces or special characters are not allowed.

  5. L'utilisation de caractères supplémentaires n'est pas autorisée.Supplementary characters are not allowed.

    Un identificateur qui ne respecte pas toutes ces règles doit toujours être délimité par des crochets ou des guillemets doubles lors de son utilisation dans une instruction Transact-SQLTransact-SQL .When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

Note

Certaines règles relatives au format des identificateurs réguliers dépendent du niveau de compatibilité de la base de données.Some rules for the format of regular identifiers depend on the database compatibility level. Vous pouvez définir ce niveau avec ALTER DATABASE.This level can be set by using ALTER DATABASE.

Voir aussiSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE (Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE RULE (Transact-SQL) CREATE RULE (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE VIEW (Transact-SQL) CREATE VIEW (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL) DELETE (Transact-SQL)
INSERT (Transact-SQL) INSERT (Transact-SQL)
Mots clés réservés (Transact-SQL) Reserved Keywords (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
UPDATE (Transact-SQL) UPDATE (Transact-SQL)