2009-02-27 12 views
2

私は使用できないようですか?より複雑なSQL文では、SQLをセットアップする前のステップを設定することができます。これは、ステップSQLステートメントを設定し、グローバル変数に代入するActiveXステップです。DTSは別のステップのステップのSQL文を設定します

それは、本質的にVBスクリプトである前に、だから、SQLのステップは、

「205(変更SourceSQLStatement) ます。Option Explicit

機能メイン() 薄暗いoPkg以下のようにそれに0を選択させるステップoDataPump、sSQLStatement

' Build new SQL Statement 
sSQLStatement = "IF (SELECT 1 FROM TABLE fm WHERE NOT EXISTS ("&_ 
      "SELECT HighestVersionReceived "&_ 
      "FROM FILE_CURRENT fc "&_ 
      "WHERE fc.COL = fm.COL "&_ 
      "AND fc.HighestVersionReceived < fm.FileVersion) "&_ 
      "AND [FileName] = '" & DTSGlobalVariables("GLBFileName").Value & "') = 1 "&_ 
      "SELECT 1 AS VALID "&_ 
      "ELSE "&_ 
      "SELECT 0 AS VALID" 

' Get reference to the DataPump Task 
Set oPkg = DTSGlobalVariables.Parent 
Set oDataPump = oPkg.Tasks("DTSStep_DTSExecuteSQLTask_34").CustomTask 

' Assign SQL Statement to Source of DataPump 
oDataPump.SourceSQLStatement = sSQLStatement 

' Clean Up 
Set oDataPump = Nothing 
Set oPkg = Nothing 

Main = DTSTaskExecResult_Success 

エンド機能、それを述べしかし

この名前のタスクが見つかりません。存在します。 Tasksの代わりにStepsに変更すると、それは見つかりましたが、StepにはSourceSQLStatementプロパティがありません。

私は自分の奥から外れています。何か案は?

おそらくSQLを実行するステップのタイプを変更しますか?

答えて

1

複雑なTSQLステートメントをストアドプロシージャに変更しようとしましたか?

次に、FileNameのストアドプロシージャに入力パラメータを設定できます。このストアドプロシージャは、データポンプタスクのソースとして使用することができます。パラメータには実行時にDTSグローバル変数の値に "?"あなたが言及する構文。

+0

私はこの種のことを愛しています。「このようにすれば、複雑さはなくなります」答えの一種! –