2012-06-18 16 views
10

Uno facile per chiunque lo sappia. In Stored procedure TSQL come si scrive un'istruzione if confrontando il valore di un bool. Essendo abituato a C# troppo a lungo, sto inserendo bretelle ricurve, bretelle rotonde e ogni sorta e penso di sbagliarmi.Stored procedure T-SQL Se controllo booleano

risposta

24
DECLARE @bool BIT = 1 

IF @bool = 1 
BEGIN 
    -- do stuff here 
    PRINT 'it was true'; 
END 
ELSE 
BEGIN 
    -- do other stuff here 
    PRINT 'it was not true'; 
END 

Se hai soltanto una singola linea all'interno del se poi don 'necessario il BEGIN e END, ma probabilmente è una buona pratica usarli comunque.

+0

dove va un altro? Dopo o prima della fine? –

+0

Ho aggiunto una clausola ELSE alla risposta, che segue la FINE. –

3

Il corrispondente tipo di dati SQL per booleana è po ', il che significa 1 per vero e 0 per falso, in modo da:

IF(@Statement=1) 
    BEGIN 
     SELECT COUNT(*) FROM Table 
    END 
ELSE 
    BEGIN 
     SELECT MIN(ID) FROM Table 
    END 
END 
+0

Ottenuto un 'END' extra lì. 'SE ... ELSE ...' non termina con una parola chiave 'END'. Ne hai solo bisogno per ogni blocco "BEGIN ... END' – KyleMit

Problemi correlati