2016-04-07 10 views
0

私はMS SQL Server 2014を使用しています。結果セットをチェックする方法はストアプロシージャで空です

私はif文のリターンは何も下に、ロジックを追加する
CREATE PROCEDURE getId(
     @Api_Id INT 
     ,@xmlRequest VARCHAR(max) out) 
AS 
BEGIN 
    SELECT xmlRequest FROM Api_request 
     WHERE Api_id = @Api_id 
END; 

:例えばのためにApi_id = @Api_id

Api_request FROM

SELECT xmlRequest:

確認方法
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; 

結果セットは空です。

答えて

2

あなたはIF NOT EXISTSを使用することができます。

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

感謝を。 –

+0

@somtrivedi私は助けてくれると嬉しかったです。あなたの問題を解決するのに役立ちましたら、これを記入してください。 –

1

一つの方法は、@@ROWCOUNTを使用することです。これは、最後のステートメントの影響を受ける行の数を返します。

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

私は@ GiorgosBetsosのアプローチを個人的に好みます。 IF、NOT EXISTS、およびQUERYを1つのステートメントにまとめると、より洗練されたものになります。

0

また、あなたはそのように行うことができます応答のための

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 
関連する問題