? を使用できないようですので、私たちが実行しているより複雑な SQL ステートメントでは、前のステップを設定して SQL をセットアップできることをどこかで読みました。これは、ステップ SQL ステートメントを設定し、グローバル変数に代入する ActiveX ステップです。
そのため、SQL ステップには SELECT 0 が含まれており、その前のステップは基本的に以下のような VB スクリプトです。
' 205 (SourceSQLStatement の変更) Option Explicit
関数 Main() Dim oPkg、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 を実行するステップのタイプを変更しますか?