1

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

例如:

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

    wait for 'package execution completion'

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

4

1 回答 1

2

使用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
于 2017-03-23T09:49:52.430 回答