启动 SQL 服务器代理作业 when case when statement returns true

Start SQL Server Agent job when case when statement returns true

我想创建一个过程来不断检查和比较源和目标之间的行数 table。如果源 table 具有更高的行数,那么我想执行 SQL 服务器代理作业,我的过程应该等到该作业完成。

例如:

create proc 'XYZ'
    case when a.count(*) > b.count(*) then sp_start_job 'SSIS_package_ABC' 

    wait for 'package execution completion'

如果有人能指出正确的方向,我将不胜感激,因为我是 SQL Server Agent 的新手。

使用 IF 语句代替 CASE:

DECLARE @SRC_TABLE_CNT INT,
    @DEST_TABLE_CNT INT

SELECT @SRC_TABLE_CNT = COUNT(*) FROM SOURCE_TABLE

SELECT @DEST_TABLE_CNT = COUNT(*) FROM DEST_TABLE

IF @SRC_TABLE_CNT > @DEST_TABLE_CNT
BEGIN
    sp_start_job 'SSIS_package_ABC'
END