使用SQL Server 2005,但仍然在使用DTS。 我需要添加一个步骤来检查表是空的,不知何故未能步骤,如果它是。 这很容易检查,如果表是空的:
Select count(*) from source_table
但是,返回0,是成功的,太。 如果是0,我想失败(这样我就可以叉子不同的选项,给我们发电子邮件,跳过一些步骤)。
使用SQL Server 2005,但仍然在使用DTS。 我需要添加一个步骤来检查表是空的,不知何故未能步骤,如果它是。 这很容易检查,如果表是空的:
Select count(*) from source_table
但是,返回0,是成功的,太。 如果是0,我想失败(这样我就可以叉子不同的选项,给我们发电子邮件,跳过一些步骤)。
if (select count(*) from [Table]) = 0 print 'Empty'
怎么样返回-1?
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
我没有使用DTS。 它在SSIS中得到了解决,但回头看,我可以大概做过DTS类似的东西。
步骤1:其选择次数,并保存该计数给变量的数据流的任务。 该SELECT COUNT采取了一些工作:
select cast(count(*) as integer) as Row_Count from MyTable
然后将数据流任务的输出是脚本部件,这是一个目的地和具有一个输入列作为ROW_COUNT,我的ReadWriteVariables作为TableCount的(即用作输入步骤2中的变量)
第2步:计算结果是计数,如果计数为0失败的脚本任务,否则成功。 从这个分叉是成功的途径和失败的路线。