2012-06-18 20 views
10

ile bilen Herkes için kolay olanı. TSQL Depolanmış Prosedürlerinde, boole değerini karşılaştıran bir if ifadesini nasıl yazarsınız. C# 'ye uzun süredir alışkınım kaşlı ayraçlar, yuvarlak parantezler ve her türden birşeyler giyiyorum ve sanırım yanlış anladım. booleanSaklanan Yordam T-SQL Boole kontrolü

cevap

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 

sen ancak o zaman eğer don içindeki tek bir satır var ise BEGIN ve END'a gereksinim duyuyor, ancak yine de bunları kullanmak için iyi bir uygulama.

+0

? AFT'den önce mi yoksa SON'ten mi önce? –

+0

Cevabı bir ELSE yan tümcesi ekledim - SON sonrası gider. –

3

gelen SQL veri türü, yani yanlış için de geçerlidir için 1 ve 0 anlamına bit:

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

Orada bir Extra 'END' var. "IF ... ELSE ..." bir "END" anahtar kelimesiyle sonlandırılmaz. Her bir "BEGIN ... END" bloğu için bunlara ihtiyacınız var. Başka bir yere gitmek nerede – KyleMit