2012-06-18 24 views
10

Fácil para cualquiera que lo sepa. En los procedimientos almacenados de TSQL, ¿cómo se escribe una instrucción if que compare el valor de un bool? Como estoy acostumbrado a C# demasiado tiempo, me pongo llaves, llaves redondas y todo tipo de cosas, y creo que me estoy equivocando.Procedimiento almacenado T-SQL If boolean check

Respuesta

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 

Si sólo tiene una sola línea dentro del Si, pues, Don No es necesario el BEGIN y el END, pero probablemente sea una buena práctica usarlos de todos modos.

+0

¿A dónde va otro? ¿Después o antes del FIN? –

+0

He agregado una cláusula ELSE a la respuesta: va después del FIN. –

3

El correspondiente tipo de datos SQL a booleano es poco, es decir, 1 para verdadero y 0 para falso, por lo que:

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

Tiene un 'END' adicional allí. 'SI ... ELSE ...' no termina con una palabra clave 'END'. Solo los necesita para cada bloque 'BEGIN ... END' – KyleMit

Cuestiones relacionadas