为什么SQL server express 2008会给我这个错误?
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 :(得分:6)
因为DESC
是SQL关键字。您可以使用其他列名称(例如description
)或在desc
周围加上括号:
[desc] VARCHAR(25)
答案 1 :(得分:6)
SqlCe是一个仅限Unicode的数据库,因此您需要nvarchar而不是varchar。
答案 2 :(得分:1)
DESC
是一个保留的SQL关键字。在SQL Server中,您可以通过使用[]括起名称来转义保留名称,例如[desc]
。
或者,不要使用缩写并命名列Description
。
答案 3 :(得分:0)
我见过的两个回复都是正确的。
DESC是DESCENDING的缩写(如在ORDER BY子句中),因此保留。使用'desc'或[desc]将避免该问题,并允许使用空格等字段名称。
(注意:我不建议使用关键字作为字段名称或别名。我也不建议在其中添加空格。但是使用''或[]你可以......)