WIKI LWS - L'hébergeur Web accessible à tous WIKI LWS - L'hébergeur Web accessible à tous

Ceci est une ancienne révision du document !


Comment utiliser des Identificateurs ?

Le nom d'un objet base de données est connu comme son identificateur.

Tout dans Microsoft SQL Server peut avoir un identificateur.

Les serveurs, les bases de données et les objets de base de données tels que les tables, les vues, les colonnes, les index, les déclencheurs, les procédures, les contraintes, les règles … peuvent avoir des identificateurs.

La plupart des objets requièrent un identificateur; cependant, les identificateurs sont optionnels pour certains objets, comme les contraintes.

Un identificateur d'objet est créé lorsque l'objet est défini. Vous pouvez utiliser l'identificateur pour référencer l'objet. Par exemple, cette déclaration crée une table avec un identificateur TableX, et 2 colonnes avec les identificateurs KeyCol et Description:

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

Cette table a aussi contrainte anonyme. La contrainte PRIMARY KEY n'a pas d'identificateur.

Les classes des identificateurs

Il y a 2 classes d'identificateurs:

  • Les identificateurs réguliers

Ils sont onformes aux règles pour le format des identificateurs. Les identificateurs réguliers ne sont pas délimités lorsqu'ils sont utilisés dans des déclarations Transact-SQL.

SELECT * FROM TableX WHERE KeyCol = 124

  • Les identificateurs délimités

Ils sont entourés par des guillemets (") ou par des crochets ([ ]). Les identificateurs qui sont conformes aux règles pour le format des identificateurs peuvent être ou ne pas être délimités.

SELECT * FROM [TableX] – Délimiteur optionnel WHERE [KeyCol] = 124 – Délimiteur optionnel

Les identificateurs qui ne sont pas conformes avec toutes les règles pour les identificateurs doivent être délimités dans une déclaration Transact-SQL.

SELECT * FROM [My Table] – l'identificateur contient un espace WHERE [order] = 10 – l'identificateur est un mot-clé réservé.

Les identificateurs réguliers et délimités doivent contenir entre 1 et 128 caractères. Pour des tables locales temporaires, l'identificateur ne peut excéder 116 caractères.

Règles pour les identificateurs réguliers

Les règles pour le format des identificateurs réguliers sont dépendantes du niveau de compatibilité de la base de données, qui peut être configurée avec sp_dbcmptlevel. Lorsque le niveau de compatibilité est de 70 alors, les règles sont:

  • *Le premier caractère doit être un des suivants:*
  • Une lettre définie par le standard Unicode 2.0. La définition Unicode des lettres inclut les caractères Latin a-z et A-Z, en plus des caractères lettre des autres langages.
  • Les symboles souligné (_), arobase (@) ou nombre (#).

Certains symboles au début d'un identificateur ont des sens spéciaux sous SQL Server. Un identificateur qui commence avec @ indique une variable locale ou un paramètre. Un identificateur qui commence par # indique une table temporaire ou une procédure. Un identificateur qui commence par ## indique un objet temporaire global.

Certaines fonctions Transact-SQL ont des noms qui commencent par 2 arobase (@@). Pour éviter une confusion avec ces fonctions, il est recommandé que vous n'utilisiez pas de noms commençant par @@.

  • *Les caractères consécutifs peuvent être:*
  • des lettres comme définies par le standard Unicode 2.0.
  • des nombres décimaux du Latin basic ou d'autres scripts nationaux.
  • les symboles @, $, # ou _.

L'identificateur ne doit pas être un mot réservé par Transact-SQL. SQL Server réserve à la fois les versions des mots réservés en majuscule et en minuscule.

Les espaces encastrés ou les caractères spéciaux ne sont pas permis.

Chaque identificateur qui ne répond pas à toutes ces règles doit toujours être délimité par des guillemets ou des crochets lorsqu'il est utilisé dans des déclarations Transact-SQL.

Articles, vidéos et guides en lien avec cette rubrique

comment_utiliser_des_identificateurs.1354092321.txt · Dernière modification: 2012/11/28 09:45 par lws
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante : CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki