2012-03-28 5 views
2

Ich bekomme einen anonymen Fehler auf diesem einfachen SQL und ich kann den Fehler nicht erkennen, jede Hilfe wird appreiated sein.SQL Server Express - Falsche Syntax in der Nähe von ','

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

[Was stellt ein Double in SQL Server?] (Http://StackOverflow.com/Questions/1209181/what-represents-a-double-in-sql-server) –

Antwort

8

Double ist kein SQL Server-Datentyp.

Dies sollte eine vollständige Liste aller Datentypen sein, siehe MSDN.

Ich sollte beachten, Sie werden wahrscheinlich FLOAT oder DECIMAL verwenden, um Ihr Problem zu lösen, aber ich weiß nichts über den Rest von dem, was Sie tun (Produzenten oder Verbraucher), so werde ich lassen Sie wählen aus, welcher Datentyp Ihr ​​Problem löst.

+0

Es funktionierte, Danke, ich war mit der gleiche Syntax wie MySQL, die DOUBLE als Datentyp verwendet. – user1279144

+0

bitte markieren Sie dies als eine angenommene Antwort, wenn dies Ihre Frage beantwortet. – deutschZuid

6

Ändern Sie DOUBLE in FLOAT, um das Problem zu beheben.

3

Verwendung dezimal (9,2) oder die Präzision, die Sie eher benötigen, als DOUBLE

1

Sie einfach DOUBLE entfernen musste, da es keine unterstützte Datentyp ist. Ich würde auch Ihre Abfrage in einer leichter zu organisieren reccomend Weise zu lesen wie:

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

Sie finden es einfacher Bugs diese Art und Weise zu beheben.

Verwandte Themen