2009-09-03 4 views
2

Pourquoi SQL Server Express 2008 me signale-t-il cette erreur?L'erreur SQL "type de données spécifié n'est pas valide"

CREATE TABLE model (
name varchar(3), 
desc varchar(25) 
) 


0x80040E14, Minor Error 26302 
> CREATE TABLE model (
name varchar(3), 
desc varchar(25) 
) 
The specified data type is not valid. [ Data type (if known) = varchar ] 
+0

Veuillez choisir les titres de questions qui décrivent généralement votre question. "Newbie question" pourrait être à peu près tout. –

Répondre

6

Parce que DESC est un mot clé SQL. Vous pouvez utiliser un nom de colonne (par exemple, description) ou mettre des crochets autour desc:

[desc] VARCHAR(25) 
1

DESC est un mot-clé SQL réservé. Dans SQL Server, vous pouvez échapper le nom réservé en entourant le nom avec [], comme [desc]. Ou n'utilisez pas d'abréviation et nommez votre colonne Description.

0

Les deux réponses que j'ai vu sont correctes.

DESC est l'abréviation de DESCENDING (comme dans la clause ORDER BY) et est donc réservé. Utiliser 'desc' ou [desc] évitera ce problème et autorisera aussi les noms de champs avec des espaces, etc.

(Note: Je ne recommande pas d'utiliser des mots-clés comme noms de champs ou alias Et je ne vous recommande de mettre des espaces en eux, mais avec « » ou [], vous pouvez ....).

6

SQLCE est un Unicode -seulement base de données donc vous avez besoin de nvarchar au lieu de varchar.

Questions connexes