0
  1. このSQLステートメントをssisパッケージで実行しています。メールアドレスをハードコーディングしました。どうすればそれを変数として渡し、変数を外部化して、構成ファイルから値を渡すことができますか?

  2. これ@PackageStartTimeはシステムの開始時間です。その変数を宣言し、プロパティウィンドウで式を設定し、@[System::StartTime]その式を評価しました。PackageStartTimeしかし、このパッケージを実行し、この特定のタスクにヒットすると、パラメーターが認識されず、結果のプロパティが正しく設定されていないと言って、そこでスタックします。

これが私のコードです:

DECLARE @PackageStartTime Varchar(250) 
SET @PackageStartTime =?

IF (SELECT COUNT(*) FROM [dbo].[Table1] WHERE RowCDate >= @PackageStartTime) > 0
BEGIN
    DECLARE @SUB Varchar(250) 
    SET @SUB = 'File Failed' + @@SERVERNAME

    DECLARE @BODY Varchar(250) 
    SET @BODY = 'File Failed' + @@SERVERNAME

EXEC msdb.dbo.sp_send_dbmail 
    @profile_name='default',
    @recipients='dev@null.com', 
    @subject=@SUB, 
    @body=@BODY,
    @query= 'SELECT DISTINCT FileLoadName FROM [dbo].[Table1] WHERE RowCDate  >= @PackageStartTime', 
    @attach_query_result_as_file=1

これらの2つのことを何を解決するかについて何か考えはありますか?

前もって感謝します。

4

1 に答える 1

1

マイナ、この件に関するあなたの別の投稿に返信しました。これまでに、私が遭遇した 3 つの投稿があります。この質問で尋ねた質問は、本質的に非常に一般的なものであり、その答えは適切な書籍 (Professional Microsoft SQL Server 2008 Integration Services など) に記載されています。また、多くの Web サイトで完全なステップバイステップの回答を見つけることができます (ただし、それらを本の代わりとして使用しないでください。そうしないと、SSIS に関する知識が不完全なままになる可能性があります。

そうは言っても、あなたの質問に答える2つのリンクがあります: 1.変数を渡す: https://www.simple-talk.com/sql/ssis/passing-variables-to-and-from-an-ssis-task / (実は、以前にもこのリンクをあなたに送ったようです。)

  1. 構成からの変数値の割り当て - http://www.bidn.com/blogs/DevinKnight/ssis/1655/passing-values-into-an-ssis-package-at-runtime-from-outside-the-package

最初に項目 1 に焦点を当てます。練習したら、新しい Execute sql タスクを作成し、その中に多くのコードを入れます。

DECLARE @PackageStartTime Varchar(40)=?; SELECT COUNT(*) FROM [dbo].[Table1] WHERE RowCDate >= @PackageStartTime;

この行数をパッケージ変数 iCount に格納します。値を返すことは、ResultSet プロパティを介して行われます。このタスクを機能させることができれば、SQL 実行タスクの習熟度が向上したことになります。

于 2013-03-16T12:15:07.180 に答える