2016-04-07 15 views
0

MS SQL Server 2014 kullanıyorum.Sonuç kümesi nasıl ayarlanır? Mağaza yordamında boş set

CREATE PROCEDURE getId(
     @Api_Id INT 
     ,@xmlRequest VARCHAR(max) out) 
AS 
BEGIN 
    SELECT xmlRequest FROM Api_request 
     WHERE Api_id = @Api_id 
    /*if result set empty*/ 
    /* will add some logic here */ 
END; 

nasıl kontrol etmek: Api_id = @Api_id eg için

NEREDEN Api_request GELEN

SEÇ xmlRequest:

CREATE PROCEDURE getId(
     @Api_Id INT 
     ,@xmlRequest VARCHAR(max) out) 
AS 
BEGIN 
    SELECT xmlRequest FROM Api_request 
     WHERE Api_id = @Api_id 
END; 

Ben ise deyim dönüş şey aşağıda, mantığı eklemek istediğiniz sonuç kümesi boş.

IF NOT EXISTS (SELECT xmlRequest FROM Api_request 
       WHERE Api_id = @Api_id) 
BEGIN 
    /*if result set empty*/ 
    /* will add some logic here */ 
END 

cevap

2

Bir IF NOT EXISTS kullanabilirsiniz. Bu, son ifadeden etkilenen satır sayısını döndürür.

IF (@@ROWCOUNT) > 0 
    BEGIN 
     SELECT 'Populated Resultset'; 
    END 
ELSE 
    BEGIN 
     SELECT 'Empty Resultset'; 
    END 
; 

Şahsen ben @ GiorgosBetsos'un yaklaşımını tercih ediyorum. IF, EXISTS ve QUERY ifadelerini tek bir ifadede birleştirmek daha temiz ve daha kolay takip edilebilir.

+0

teşekkür ederiz. –

+0

@somtrivedi Glad Yardım edebiliyordum. Lütfen sorununuzu çözmenize yardımcı olması durumunda, bunu veya başka bir şekilde kabul ettiğinizi onaylayın. –

0

Ayrıca böyle yapabilirsiniz: cevap için

IF (SELECT TOP 1 xmlRequest FROM Api_request WHERE Api_id = @Api_id) IS NULL 
BEGIN 
    /*if result set empty*/ 
    /* will add some logic here */ 
END