SQL Server Express - 不正确的语法附近','

问题描述:

我在这个简单的sql上出现了一个厌恶的错误,我无法发现错误,任何帮助都会被满足。SQL Server Express - 不正确的语法附近','

CREATE TABLE alertitem 
    ([id] INT, 
    [dateposted] DATETIME, 
    [daterevised] DATETIME, 
    [datestart] DATETIME, 
    [dateexpires] DATETIME, 
    [userid] INT, 
    [title] VARCHAR(MAX), 
    [details] VARCHAR(MAX), 
    [lat] DOUBLE, 
    [lon] DOUBLE, 
    [radius] INT, 
    [imageid] INT); 
+1

[什么代表在SQL Server中的双重?](http://*.com/questions/1209181/what-represents-a-double-in-sql-server) – 2012-03-28 21:17:33

Double不是SQL Server数据类型。

这应该是所有数据类型的完整列表,请参阅MSDN

我应该注意到,你可能会想用FLOAT或DECIMAL来解决你的问题,但是我对你正在做的其他事情(生产者或消费者)一无所知,所以我会让你选择哪种数据类型可以解决你的问题。

+0

它的工作,谢谢,我使用与使用DOUBLE作为数据类型的MySQL相同的语法。 – user1279144 2012-03-28 21:29:32

+0

如果这回答您的问题,请将此标记为已接受的答案。 – deutschZuid 2012-03-30 01:53:40

将DOUBLE更改为FLOAT以解决您的问题。

使用十进制(9,2),或者你需要,而不是DOUBLE

你只是需要删除DOUBLE,因为它不是一个支持的数据类型的精度。我还reccomend组织你的查询更容易阅读的方式,如:

CREATE TABLE alertitem (
    [id] INT, 
    [dateposted] DATETIME, 
    [daterevised] DATETIME, 
    [datestart] DATETIME, 
    [dateexpires] DATETIME, 
    [userid] INT, 
    [title] VARCHAR(MAX), 
    [details] VARCHAR(MAX), 
    [lat] FLOAT, 
    [lon] FLOAT, 
    [radius] INT, 
    [imageid] INT); 

你会发现很容易解决的bug这种方式。