Je veux créer une table dans SQL Server2012 qui a le nom de colonne qui inclut des parenthèses comme
create table temp_sp ( logtime datetime, vcs_api varchar, L3(S1)Status varchar, L3(S2)Status varchar, beam_current real, beam_energy real, st1_vs1_bag1_rb real, ring_avg_pressure real )
Mais lorsque j'utilise une parenthèse avec le L3(S1)Status
L3(S2)Status
j'obtiens une erreur
Syntaxe incorrecte près de '(' .Expecting ')' ou ','. **
Comment le résoudre?
Il suffit de le mettre à l'intérieur []
create table temp_sp ( logtime datetime, vcs_api varchar, [L3(S1)Status] varchar, [L3(S2)Status] varchar, beam_current real, beam_energy real, st1_vs1_bag1_rb real, ring_avg_pressure real )
EDIT: Comme l'indique le commentaire ci-dessous: Vous ne devez pas laisser de champs de longueur variable avec une longueur indéterminée. VARCHAR et NVARCHAR ont deux valeurs par défaut, 1 ou 30, selon comment / où il est utilisé.
Parenthèses, une seule virgule est un mot réservé pour sqlserver. Généralement éviter ce genre de chose.
Encore vous voulez, vous devez utiliser Bracket []
pour dire à sqlserver que c'est la string, pas un mot réservé.
Donc [L3(S1)] Status varchar
cela fonctionnera pour vous.
Bon article: – http://technet.microsoft.com/en-us/library/aa224033%28v=sql.80%29.aspx
Quels caractères "spéciaux" sont autorisés dans les champs varchar de SQL Server?
Quels caractères sont valides dans un nom de database SQL Server?
http://msdn.microsoft.com/en-us/library/ms175874.aspx
Les caractères qui doivent être échappés dans Tsql
Utiliser des crochets
[Like (this)]
Mais ne le fais pas. Cela rend tout votre SQL difficile à écrire et peut également rendre les SP et les appels de code plus difficiles.