启动 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
我想创建一个过程来不断检查和比较源和目标之间的行数 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