2009-12-16 4 views
3

Voici un extrait de mon code, lorsqu'un nom de table contient un trait d'union, j'obtiens l'erreur ci-dessous. Comment puis-je réparer cela? Merci pour l'aide.C# Lors de la création d'une table, j'obtiens une erreur "syntaxe incorrecte" si mon nom de colonne contient un trait d'union "-"

alt text http://img109.imageshack.us/img109/148/createtable.png

ex = { "ERREUR [42000] [Microsoft] [ODBC SQL Server Driver] [SQL Server] Ligne 1:. Syntaxe incorrecte près '-'"}

+1

"Ça fait mal quand je fais ça" "Alors ne faites pas cela" - en d'autres termes, ne mettez pas de traits d'union ici. –

+0

Pilote ODBC Sql Server? – Will

Répondre

6

Utilisez [] autour de la nom de la colonne:

CREATE TABLE [test2] 
(cn VarChar(1024) NULL, 
[tutor-id] VarChar(1024) NULL) 

Ou de préférence bâton pour les noms de colonnes qui ne nécessitent pas un traitement spécial ...

Notez que c'est un colonne nom qui a un trait d'union, pas le table nom.

+0

Sans doute, OP dit que la table contient le trait d'union, pas la table * name * =) –

+0

@David: "quand un nom de table contient un trait d'union" me semble assez clair;) –

+0

Merci, je ne peux pas éviter le trait d'union c'est inclus dans les données que je reçois, merci tout ce que je vais essayer [table-id]. – Jamie

2

SQL n'aime pas les traits d'union. Essayez enfermer tuteur-id entre crochets: [tutor-id]

3

Utilisez [tutor-id]

3

Si vous devez, vous pourriez être en mesure de contourner ce problème en définissant le nom du champ à [tutor-id] plutôt que tutor-id, mais simplement de renommer le domaine tutorId est une approche que je préfère prendre.

2

Vous pouvez remplacer le tiret par un trait de soulignement ou placer le nom entre [et].

1

Essayez:

Créer une table [test2] ( [cn] varchar (1024) NULL, [tuteur-id] varchar (1024) NULL )

Questions connexes