2017-03-21 4 views
0

SQL Server 2012を実行します。条件が満たされている場合、アラートメールを生成したいと思います。これはSQL Serverエージェントでセットアップされ、1時間ごとに実行されます。条件に基づいてアラートを送信

は、基本的には、次のクエリを実行します:

SELECT 
    IBTRANSACTIONID, SUBCONSTATUS 
FROM 
    PSAPMSGSUBCON 
WHERE 
    SUBCONSTATUS = 3 
    AND STATUSSTRING = 'WRKNG' 

IF --(need some input here) 
    EXEC msdb.dbo.sp_send_dbmail --(then would call this to issue email) 

は、回答に感謝

+2

それはあなたの問題が何であるかは不明です。あなたのエージェントの仕事では、どのような条件であなたは実装が難しいですか? – TZHX

+0

where句に修飾子があるため、 'IF'文をどのようにフレームするのか不明です。 – user1133448

+1

'存在する場合は'を選択しますか? – TZHX

答えて

1
You may try this one. 

DECLARE 
    @IBTRANSACTIONID VARCHAR(100) = NULL, 
    @SUBCONSTATUS VARCHAR(100) =NULL 
SELECT 
    @IBTRANSACTIONID = IBTRANSACTIONID, 
    @SUBCONSTATUS = SUBCONSTATUS 
FROM 
    PSAPMSGSUBCON 
WHERE 
    SUBCONSTATUS = 3 
    AND STATUSSTRING = 'WRKNG' 

IF (@IBTRANSACTIONID IS NOT NULL AND @IBTRANSACTIONID <>'') AND (@SUBCONSTATUS IS NOT NULL OR @IBTRANSACTIONID <>'') 
    BEGIN 
     EXEC msdb.dbo.sp_send_dbmail --(then would call this to issue email) 
    END 
+1

空の文字列を処理するには、 'IS NOT NULL OR'が' IS NOT NULL AND 'でなければならないことを除いて、良い答えです。 Btw私は通常、空のvarcharsをチェックするために 'ISNULL(@IBTRANSACTIONID、 '')<> '')'を使います。 – BdR

+0

ところで、それはかなり簡単な質問だったので、質問者がSQLの仕組みを理解できるように、単純なロジックで答えようとしました。 コメントしていただきありがとうございます。これは他のコミュニティユーザーに役立つでしょう。 –

+0

お世話になりました!私はこれを試してみましょう。あなたの例は、私に関係するロジックのより良い理解を与えてくれます。 – user1133448

関連する問題