IF...ELSE (Transact-SQL)
Impone le condizioni per l'esecuzione di un'istruzione Transact-SQL. L'istruzione Transact-SQL che segue una parola chiave IF e le relative condizioni viene eseguita se le condizioni vengono soddisfatte, ovvero quando l'espressione booleana restituisce TRUE. La parola chiave facoltativa ELSE introduce un'altra istruzione Transact-SQL eseguita quando non viene soddisfatta la condizione IF, ovvero quando l'espressione booleana restituisce FALSE.
Convenzioni della sintassi Transact-SQL
Sintassi
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Argomenti
Boolean_expression
Espressione che restituisce TRUE o FALSE. Se l'espressione booleana include un'istruzione SELECT, tale istruzione deve essere racchiusa tra parentesi.{ sql_statement| statement_block }
Qualsiasi istruzione o gruppo di istruzioni Transact-SQL valido definito tramite un blocco di istruzioni. Le condizioni IF o ELSE possono influire sulle prestazioni di una sola istruzione Transact-SQL, a meno che non venga utilizzato un blocco di istruzioni.Per definire un blocco di istruzioni, utilizzare le parole chiave per il controllo di flusso BEGIN ed END.
Osservazioni
È possibile utilizzare un costrutto IF...ELSE in batch, stored procedure e query ad hoc. In caso di utilizzo in una stored procedure, questo costrutto viene in genere utilizzato per verificare l'esistenza di parametri.
È possibile nidificare condizioni IF dopo un'altra condizione IF o una parola chiave ELSE. Il limite del numero di livelli di nidificazione dipende dalla memoria disponibile.
Esempi
Nell'esempio seguente viene utilizzato il costrutto IF…ELSE con l'output della stored procedure uspGetList. Questa stored procedure è definita in Creazione di una stored procedure. Nell'esempio seguente la stored procedure restituisce una lista di biciclette il cui prezzo è minore di $700. Questa condizione determina l'esecuzione dell'istruzione PRINT.
DECLARE @compareprice money, @cost money
EXECUTE Production.uspGetList '%Bikes%', 700,
@compareprice OUT,
@cost OUTPUT
IF @cost <= @compareprice
BEGIN
PRINT 'These products can be purchased for less than
$'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END
ELSE
PRINT 'The prices for all products in this category exceed
$'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'
Per ulteriori esempi, vedere ELSE (IF...ELSE) (Transact-SQL).
Vedere anche
Riferimento
END (BEGIN...END) (Transact-SQL)
Elementi del linguaggio per il controllo di flusso (Transact-SQL)