2
MSSQL 2008 R2データベース用のストアドプロシージャを作成しようとしています。 ストアドプロシージャは、いくつかの値を比較し、ビット/ブール値を返す必要があります。 パラメータ(@ PlatformCode)に応じて、プロシージャは適切なチェックを選択する必要があります。メッセージ102、レベル15、状態1、行1 '<'付近の構文が正しくありません
しかし、結果の出力をvarに保存しようとする行にエラーが発生します。
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
結果を返すには、もっと良い方法がありますか?あなたが不足している何
おかげで、より良い方法がいいです。このようにして、 'IF'の直後に行があるので、 'BEGIN'と 'END'をオフにしておくことができます。それは大丈夫ですか、それとも両方とも「美しい」コードですか? – BHuelse
までお任せください。あなたはそれを残すか、削除することができます。 IF論理がどこに適用されるかを明確に示すので、私はそれを残しておくことをお勧めします。 –
@BHuelseこれが正しい答えだと思うなら、あなたは受け入れられると答えることができますか? :)歓声 –