2012-01-25 17 views
0

私はssisユーザ定義変数から取得したストアドプロシージャ名を実行したいforeachループコンテナ内にexecute sqlタスクを配置しました しかし、私はストアドプロシージャを実行するための正しい構文を見つけることができません変数からのプロシージャ名。そして、私はssisのエラーsqlタスクを実行

答えて

4

enter image description here

いずれかの助けが正しい構文を把握することができますしてくださいまた、別の変数 をDTSでストアドプロシージャを実行するために入力パラメータを渡したいあなたは二つの変数 StoredProcedureNameParameterValue

を考えてみましょう

QueryStringという名前の新しい変数を作成します。 F4を押してプロパティウィンドウを開き、変数のリストを持つウィンドウで変数名をクリックします。 QueryString変数のEvaluateAsExpressionプロパティをTrueに設定します。

Expressionの楕円形をクリックして式ビルダーを開きます。次の式

"Execute " + @[User::StoredProcedureName] + " @ParameterName = '" + @[User::ParameterValue]+ "'" 

をクリックしてに入力式を評価して、あなたは

Execute MyProcedure @ParameterName = 'SomeValue'

SQLタスクを実行するために、あなたのSourceVariableに、この変数を割り当てて表示されるはずです。

+0

[ユーザー:: ParameterValue] @私の第二の変数が整数値で、どのように私は表現を構築します、その投擲型キャストエラーの場合は迅速な応答のためのおかげで、私はここで、1人のより多くの助けが必要 – mahesh

1

あなたはです。上記のように文字列を作成しますが、それで始めません。 1つは、すべてが文字列であると仮定し、次にSQLインジェクションまであなたを開くことができる(非常にそう思わない、私は同意する)

実際にADO.NETのネイティブパラメータマッピングを使用するには、@PlaceHolder変数置換。あなたのスクリーンショットに基づいて、@の値は、[ユーザー:: StoredProcedureName]は、あなたが

enter image description here

=...作品なし@Rajからのより多くの例を表現しcobblingを見ている、それ以外の場合は EXECUTE schema.ProcName @ParameterNameの形式を持っている必要があります

マッピングは次のように簡単です。正しいデータ型とパラメーター名を選択して、照会と相関させるようにしてください。

enter image description here

関連する問題