2009-04-15 7 views
12

J'ai besoin de savoir quels sont les caractères valides à utiliser dans un nom de paramètre SQL.SQL Server - Caractères non valides dans les noms de paramètres

Étant donné quelque chose de simple comme SELECT * FROM tblTest WHERE testid = @[X], si X contient un trait d'union, par exemple, l'instruction échouera. Quels sont les caractères valides pour les noms de paramètres?

Répondre

22

Chercher "Identifiants" dans SQL Books en ligne, et vous devriez trouver:

Règles applicables aux réguliers

Les règles pour le format des identifiants réguliers dépendent du niveau de compatibilité de la base de données . Ce niveau peut être défini en utilisant sp_dbcmptlevel. Lorsque le niveau de compatibilité est de 90, les règles suivantes:

Le premier caractère doit être l'un des éléments suivants:

  • Une lettre telle que définie par la norme Unicode 3.2. La définition Unicode des lettres inclut des caractères latins d'un z à travers,
    de A à Z, ainsi que des caractères de lettres d'autres langues.
  • Le trait de soulignement (_), au signe (@) ou au signe dièse (#).

Certains symboles au début d'un identificateur ont une signification spéciale dans SQL Server. Un identificateur normal qui commence par le signe indique toujours une variable ou un paramètre local et ne peut pas être utilisé comme comme nom d'un autre type d'objet. Un identificateur qui commence avec un signe de nombre indique une table ou une procédure temporaire. Un identificateur qui commence par des signes de numéro double (##) indique un objet temporaire global . Bien que le signe de nombre ou double signecaractères peut être utilisé pour commencer les noms d'autres types d'objets, nous ne recommandons pas cette pratique.

Certaines fonctions Transact-SQL ont des noms qui commencent par le double aux signes (@@). Pour éviter toute confusion avec ces fonctions, vous ne devez pas utiliser les noms commençant par @@.

Les caractères suivants peuvent inclure les éléments suivants:

  • lettres telles que définies dans la norme Unicode 3.2.
  • Numéros décimaux provenant du latin de base ou d'autres scripts nationaux.
  • Le signe arobasque, le symbole dollar ($), le signe numérique ou le trait de soulignement.

L'identificateur ne doit pas être un mot réservé Transact-SQL. SQL Server réserve à la fois les versions majuscules et minuscules des mots réservés. Les espaces imbriqués ou les caractères spéciaux ne sont pas autorisés. Les caractères supplémentaires ne sont pas autorisés.

Recherche « identificateurs délimités » dans SQL Books en ligne, et vous devriez trouver:

Le corps de l'identifiant peut contenir toute combinaison de caractères dans la page de code actuel , à l'exception du délimitant les caractères eux-mêmes. Pour par exemple, les identificateurs délimités peuvent contenir des espaces, tous les caractères valides pour les identifiants réguliers, et l'un des caractères suivants.

tilde (~)    hyphen (-) 
exclamation point (!) left brace ({) 
percent (%)    right brace (}) 
caret (^)    apostrophe (') 
ampersand (&)   period (.) 
left parenthesis (()  backslash (\) 
right parenthesis()) accent grave (`) 

Marc

+0

homme bon travail, merci. – Stimul8d

1

Recherche de livres en ligne pour les identifiants [SQL Server]. Il a les règles que les noms de paramètres doivent suivre. (Ce qui a été le SQL Server 2008 recherche), d'autres versions devraient être une recherche similaire

Questions connexes