如果表为空,如何返回失败

问题描述 投票:1回答:4

使用SQL Server 2005,但仍使用DTS。我需要添加一个步骤来检查表是否为空,如果不正确,则以某种方式使该步骤失败。检查表是否为空很容易:

Select count(*) from source_table

但是返回0也是成功的。如果它是0,则我要失败(以便可以使用其他选项,请给我们发送电子邮件,跳过一些步骤)。

sql-server-2005 ssis dts
4个回答
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

0
投票
Select 1/count(*) from source_table

-1
投票
步骤1:选择计数并将该计数保存到变量的数据流任务。选择计数需要一些工作:

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

然后数据流任务的输出是一个脚本组件,该脚本组件是一个目标组件,其输入列为ROW_COUNT,而我的ReadWriteVariables为TableCount(在步骤2中用作输入的变量)

步骤2:一个脚本任务,它评估该计数,如果计数为0,则失败,否则,则成功。由此分叉是成功的道路和失败的道路。
© www.soinside.com 2019 - 2024. All rights reserved.