Parametrierter gespeicherter Prozedurerrors

Ich verwende SQL server 2005 Management Studio Express. Münzen und Themen sind meine Tische. Ich habe eine gespeicherte Prozedur mit den oben genannten zwei und wurde mit geschlagen

Fehler: Msg 102, Stufe 15, Zustand 1, Vorgehensweise, Zeile 1
Falsche Syntax in der Nähe von 'id2'.

Hier ist mein ganzes Verfahren:

create procedure themestat(id2 In numeric, id1 In numeric) is @userid nvarchar(50), @co nvarchar(50), @price nvarchar(50) begin update themes set prioirty=1 where themeid=id2; select credits as co from coins where uid=id1; select rate as price from themes where priority=1; if(co>price) begin update themes set status=1 where priority=1; update themes set priority=0 where themeid=id2; end else begin update themes set priority=0 where theme=id2; PRINT 'no sufficient coins' end end 

Ich bin neugierig zu wissen, wo ich falsch gelaufen bin?

Ich bin mir nicht sicher, woher du die Syntax hast, aber datatypen werden als '@param type' deklariert, also sollte die erste Zeile lesen:

 create procedure themestat @id2 numeric @id1 numeric 

Dann ändern Sie offensichtlich alle referenceen von id1 und id2. Es gibt andere Syntaxerrors im Skript (fehlende declare , statt statt, vielleicht andere – ich habe nicht viel näher gesehen).

Das frage mich, ob du aus einem anderen SQL-Dialekt gekommen bist? Ich schlage vor, über CREATE PROCEDURE auf dem MSDN zu lesen (sowie andere Seiten).