因为我似乎无法使用?在我们正在执行的更复杂的 SQL 语句中,我们在某处读到,您可以设置上一步来为您设置 SQL。这是一个 ActiveX 步骤,它设置步骤 SQL 语句并替换为全局变量。
所以 SQL 步骤中有 SELECT 0 ,它之前的步骤本质上是一个 VB 脚本,如下所示
' 205(更改 SourceSQLStatement)选项显式
函数 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
结束功能
但是它声明它找不到具有此名称的任务,它确实存在。如果我们将其更改为 Steps 而不是 Tasks,则可以找到它,但 Step 没有 SourceSQLStatement 属性。
所以我超出了我的深度。有任何想法吗?
可能更改运行 SQL 的步骤类型?