使用SQL Server 2005,但仍使用DTS。我需要添加一个步骤来检查表是否为空,如果不正确,则以某种方式使该步骤失败。检查表是否为空很容易:
Select count(*) from source_table
但是返回0也是成功的。如果它是0,则我要失败(以便可以使用其他选项,请给我们发送电子邮件,跳过一些步骤)。
Select
case when count(*)>=0 then count(*) else -1 end
from
source_table
如果您真的想引发错误,可以使用RAISERROR来做到这一点:
Declare @RowCount as bigint
set @RowCount=count(*) from source_table
if RowCount =0
RAISERROR ('error message', 50000, 1) with log
Select 1/count(*) from source_table
select cast(count(*) as integer) as Row_Count from MyTable
然后数据流任务的输出是一个脚本组件,该脚本组件是一个目标组件,其输入列为ROW_COUNT,而我的ReadWriteVariables为TableCount(在步骤2中用作输入的变量)
步骤2:一个脚本任务,它评估该计数,如果计数为0,则失败,否则,则成功。由此分叉是成功的道路和失败的道路。