2016-05-03 2 views
0

ストアドプロシージャ内の変数の値に応じてSQL文を実行するにはどうすればよいですか?SQLはストアドプロシージャ内の変数の値に応じて要求を実行します

あなたは事実上存在し
if(@Quantity <= @MaxAuto) then Exec(@ReqSQL) else do nothing; 
+0

@ReqSQLは、ストアドプロシージャの名前が含まれているために行く、またはそれはDSQL(動的SQL)によって意志されていますか? DSQL - SQLインジェクションに慎重である場合。 ストアドプロシージャの場合、AntDCの答えが示唆するようにIf/Begin/End/ElseIf/...ブロックを作成することができます。 – EastOfJupiter

答えて

2

...

if(@Quantity <= @MaxAuto) 
BEGIN 
    Exec StoredProcName @param1, @Param2, etc, etc 
END 
1
DECLARE @ReqSQL VARCHAR(MAX) 
SET @ReqSQL = 'SELECT * FROM TABLE' 

IF(@Quantity <= @MaxAuto) 
BEGIN 
EXEC (@ReqSQL) 
END 
+0

は、 'exec sp_executesql @ReqSql;'にするべきではありませんか? –

+0

someExec(@ ReqSQL)が別のSPで見つかりました。正常に動作します –

関連する問題