Ich versuche, eine gespeicherte Prozedur für eine MSSQL 2008 R2-Datenbank zu schreiben. Die gespeicherte Prozedur sollte einige Werte vergleichen und einen Bit/Bool-Wert zurückgeben. Abhängig von einem Parameter (@PlatformCode) sollte die Prozedur die richtige Prüfung auswählen.Msg 102, Ebene 15, Status 1, Zeile 1 Falsche Syntax in der Nähe von '<'
Aber ich bekomme einen Fehler, in den Zeilen, wo ich versuche, mein Ergebnis in der Ausgabe var zu speichern.
CREATE PROCEDURE CheckVersion
@PlatformCode nvarchar(4),
@ClientVersion int,
@ConfigId int = 1,
@Response bit OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @version int
IF @PlatformCode = 'a'
BEGIN
SET @version = (SELECT aVersion FROM AppConfigTable WHERE ConfigID = @ConfigId)
SET @Response = (@version <= @ClientVersion)
END
IF @PlatformCode = 'i'
BEGIN
SET @version = (SELECT iVersion FROM AppConfigTable WHERE ConfigID = @ConfigId)
SET @Response = (@version <= @ClientVersion)
END
END
GO
Gibt es vielleicht einen besseren Weg, um das Ergebnis zurückzugeben?
Danke, der bessere Weg ist schön. Auf diese Weise gibt es nur eine Zeile nach dem 'IF', also kann ich 'BEGIN' und 'END' weglassen. Ist es in Ordnung, oder ist es sowohl mit dem "Beautifuller" -Code? – BHuelse
Sie können es entweder lassen oder entfernen. Ich bevorzuge es, es zu verlassen, da es deutlich zeigt, wo die IF-Logik zutrifft. –
@BHuelse können Sie bitte die Antwort als akzeptiert markieren, wenn Sie denken, dies ist die richtige Antwort. :) Prost –