Puisque je ne peux pas sembler utiliser? Dans les instructions SQL plus complexes que nous exécutons, nous lisons quelque part que vous pouvez définir une étape préalable pour configurer le SQL pour vous. Il s'agit d'une étape ActiveX qui définit les étapes de l'instruction SQL et les remplace dans les variables globales.DTS définir l'instruction SQL pour une étape dans une autre étape
Ainsi, l'étape SQL a SELECT 0 dans et de l'étape précédente est essentiellement un script VB comme ci-dessous
'205 (Change SourceSQLStatement) Option Explicit
Fonction principale() 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
End Function
Cependant, il affirme qu'il Impossible de trouver la tâche avec ce nom, il existe. Si nous le changeons en Steps intead de Tasks, il est trouvé mais le Step n'a pas de propriété SourceSQLStatement.
donc je suis hors de ma profondeur. Des idées?
probablement changer le type de l'étape qui exécute le SQL?
J'aime ce genre de « Si vous le faites de cette façon, la complexité va. » genre de réponses! –