我想创建一个不断检查和比较源表和目标表之间行数的过程。如果源表的行数较多,那么我想执行一个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 Agent的新手。
答案 0 :(得分: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