2016-05-03 8 views
0

Wie führe ich eine SQL-Anweisung abhängig vom Wert einer Variablen in einer gespeicherten Prozedur aus?SQL führt eine Anforderung in einer gespeicherten Prozedur in Abhängigkeit vom Wert einer Variablen aus

if(@Quantity <= @MaxAuto) then Exec(@ReqSQL) else do nothing; 
+0

Wird @ReqSQL den Namen einer gespeicherten Prozedur enthalten, oder wird es durch DSQL (Dynamic SQL)? Wenn DSQL - Seien Sie vorsichtig mit SQL-Injection. Wenn Stored Procedures, dann können Sie möglicherweise mit dem Erstellen eines If/Begin/End/ElseIf/... Blocks wie von AntDCs Antwort vorgeschlagen wegkommen. – EastOfJupiter

Antwort

2

Sie praktisch gab es ...

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

sollte das nicht sein, 'exec sp_executesql @ReqSql;'? –

+0

Ich habe someExec (@ReqSQL) in einem anderen SP gefunden und es funktioniert gut –

Verwandte Themen