0

私はSSISパッケージに関して完全な初心者です。

foreachループの反復ごとに異なる値のパラメーターを受け取るストアドプロシージャを実行したいと思います。だから私は誰かが私にExecute SQL Taskこのような内部の値として変数をどのように使用できるかについての例(非常に非常に非常に基本的な例)を私に与えることができるかどうか疑問に思っています:

UPDATE tbName   SET  c1 = Var1,  C2 = Var2 etc... 

また

@bDate = VarDate1 
@eDate = VarDate2 

Var2, VarDate1, VarDate2BIDSの変数はどこにありますか

4

1 に答える 1

0

最初に、SQL Server 側でストアド プロシージャを作成する必要があります。これは、このようなステートメントで行われます。これが実行されると、「yourProcedure」という新しいストアド プロシージャ オブジェクトがデータベースに存在します。

CREATE PROCEDURE yourProcedure
   @pKeyVar int,                 /* declare variables to be passed here */
   @pFirstVar varchar(40), 
   @pSecondVar int,
   @pThirdVar decimal(18,2)
AS 
BEGIN

   Update yourTable Set          /* place what will be done here */
       Col1 = @pFirstVar, 
       Col2 = @pSecondVar, 
       Col3 = @pThirdVar 
   WHERE KeyColumn = @pKeyVar

END
GO

ストアド プロシージャが作成されたら、次のように呼び出すことができます。

exec dbo.yourProcedure 12345, 'string value', 2, 2.05

SSIS から呼び出す方法はいくつかありますが、最も一般的なのはExecute SQL Task. コンテンツを保持する変数に渡されるパラメーターをマップし、ループ ロジック内にタスクを配置できます。

これは、SQL 実行タスクのまともなチュートリアルです。

パラメータを変数などにマッピングするセクションに注意してください。SSIS のバージョンは 2005 ですが、概念はすべて同じです。


コメント後に更新。

レコードセットをループして値を取得して proc に戻すには、この記事に記載されている情報に従ってください。

于 2012-09-14T16:11:15.043 に答える