SQL Server Express-靠近';的语法不正确';

SQL Server Express-靠近';的语法不正确';,sql,sql-server,tsql,Sql,Sql Server,Tsql,我在这个简单的sql上遇到了一个异常错误,我无法发现错误,任何帮助都将被告知 CREATE TABLE alertitem ([id] INT, [dateposted] DATETIME, [daterevised] DATETIME, [datestart] DATETIME, [dateexpires] DATETIME, [userid] INT, [title] VARCHAR(MAX), [

我在这个简单的sql上遇到了一个异常错误,我无法发现错误,任何帮助都将被告知

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);

Double不是SQL Server数据类型

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


我应该注意,您可能想使用FLOAT或DECIMAL来解决您的问题,但我不知道您正在做的其他事情(生产者或消费者),因此我将让您选择哪种数据类型来解决您的问题。

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

使用DECIMAL(9,2)或者,您只需要删除DOUBLE而不是DOUBLE所需的精度,因为它不是受支持的数据类型。我还建议您以更易于阅读的方式组织查询,例如:

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更容易

它工作了,谢谢,我使用了与MySQL相同的语法,MySQL使用DOUBLE作为数据类型。