如何返回一个失败,如果一个表是空的(How to return a failure if a tab

2019-10-17 11:31发布

使用SQL Server 2005,但仍然在使用DTS。 我需要添加一个步骤来检查表是空的,不知何故未能步骤,如果它是。 这很容易检查,如果表是空的:

Select count(*) from source_table

但是,返回0,是成功的,太。 如果是0,我想失败(这样我就可以叉子不同的选项,给我们发电子邮件,跳过一些步骤)。

Answer 1:

if (select count(*) from [Table]) = 0 print 'Empty'


Answer 2:

怎么样返回-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


Answer 3:

我没有使用DTS。 它在SSIS中得到了解决,但回头看,我可以大概做过DTS类似的东西。

步骤1:其选择次数,并保存该计数给变量的数据流的任务。 该SELECT COUNT采取了一些工作:

select cast(count(*) as integer) as Row_Count from MyTable

然后将数据流任务的输出是脚本部件,这是一个目的地和具有一个输入列作为ROW_COUNT,我的ReadWriteVariables作为TableCount的(即用作输入步骤2中的变量)

第2步:计算结果是计数,如果计数为0失败的脚本任务,否则成功。 从这个分叉是成功的途径和失败的路线。



文章来源: How to return a failure if a table is empty