2017-03-18 5 views
2

このコードはSSISエディタ、SSMSで動作し、カタログから実行されます。ここでSQLの実行タスクは開発者とSSMSでは機能しますが、SQL Serverエージェントではエラーが発生します

はコードです:

declare @maxDate as date 

select @maxDate = cast(max([Date]) as date) 
from [dbo].[sometable] 
--print @maxDate 

declare @currDate as date 
select @currDate = cast(getdate() as date) ; 
--print @currDate 

if @maxDate <> @currDate 
BEGIN 
    THROW 55000, 'Staging has not run for today!',1 ; 
END 

エラーは次のとおりです。

enter image description here

+3

エラーメッセージ全体をテキストとして投稿する必要があります – TheGameiswar

+1

このエラーはこのSqlタスクによってスローされますか?元のコードを教えてください – Hadi

+1

投げているエラーメッセージに日付を追加した場合、その原因が分かります。 –

答えて

0

クエリが結果は以下の図1.に示すようになりますSSMSで実行された場合。

Figure1

図1 - SSMSは、元のクエリを実行しているの結果は

メッセージ]タブに戻される何かがあります。

SSISでSQL実行タスクを使用する場合(ここでの例はVisual Studio 2015です)。そのタスクを選択すると、結果セットを返すように選択できます。結果セットは、単一または完全な結果セットになります。これらのオプションが設定されている場所については、図2を参照してください。

enter image description here

図2 - 選択返すように結果セットのタイプを示します。

エラーメッセージに基づいて、Execute SQLタスクは返されるように設定された結果を期待しています。結果セットは、クエリがSSMSで実行されたときに結果タブに返されるデータです。 1行、1フィールドの結果セットの例については、図3を参照してください。

enter image description here

図3 - タスクは、データセットを扱うことができ、結果セットを返すように設定された後改正問い合わせ単一行の結果を返すには、

を設定します。たとえば、単一の値をSSIS変数に割り当て、その値に基づいてアクションを実行します。このarticleには何ができるか、またはanswerのいくつかのアイデアがあります。

関連する問題