SELECT
CASE WHEN @[$Project::CmdParam]='Full' THEN '20000101000100'
WHEN @[$Project::CmdParam]='Day-1' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -1, GETDATE()), 112),0,12)+''+'235000')
WHEN @[$Project::CmdParam]='Day-2' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -2, GETDATE()), 112),0,12)+''+'235000')
WHEN @[$Project::CmdParam]='Day-3' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -3, GETDATE()), 112),0,12)+''+'235000')
ELSE @[$Project::CmdParam]+'235000'
END
die parameter name
in Parameter Mapping
Seite Spiel Stellen Sie sicher, genau die gleiche wie @[$Project::CmdParam]
und CASE WHEN
als wie oben verwendet. Wichtiger, wählen Single Row
als reulst
und in Result
Seite
UPDATE
wie Nick sagte, Schalter auf ADO.Net
als Connection Type
@[User::StartTime]
wie die gespeicherte Variable wählen, da Sie mit SQL Server arbeiten, können Sie dann könnte die oben genannten Mapping-Methoden verwenden, andernfalls müssen Sie ?
verwenden, ersetzen Sie jede @[$Project::CmdParam]
in der Abfrage, dann wird die Parameter Name
für die Zuordnung Parameter sein, in Ihrem Fall 0,1,2,3,4, bleiben Sie gleich mit dem Ergebnis Kartierung.
2. UPDATE Wenn Sie ADO.net
jetzt verwenden, etwa 0-4 Sache vergessen, Fügen Sie die folgende Abfrage, um Sie Anweisung in Execute SQL Task
:
SELECT
CASE WHEN @a = 'Full' THEN '20000101000100'
WHEN @a = 'Day-1' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -1, GETDATE()), 112),0,12)+''+'235000')
WHEN @a = 'Day-2' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -2, GETDATE()), 112),0,12)+''+'235000')
WHEN @a = 'Day-3' THEN (SELECT SUBSTRING(CONVERT(nvarchar(12),DATEADD("Day", -3, GETDATE()), 112),0,12)+''+'235000')
ELSE @a + '235000'
END
Nach dem Einfügen wählen Single Row
als Result set
in der gleiche Seite, nächste gehen Sie auf die Parameter Mapping
Seite, wählen Sie $Project::CmdParam
als Variable Name
, geben Sie @a
für die Parameter Name
, die Ihre Paketvariable zu @a in der Abfrage zuordnen wird. Dann gehen Sie zu Result Set
Seite, Add
neues Ergebnis, Result Name
sollte 0
sein, und wählen Sie User::StartTime
als die Variable, die das Abfrageergebnis speichern.
Nach all den oben genannten Schritten, sollte diesmal in Ordnung sein.
Wenn Sie eine SQL-Aufgabe verwenden, werden die Platzhalter für Parameter vom Treiber festgelegt. Verwenden Sie OLE DB oder ADO.Net? –
Bitte ignorieren Sie meinen (jetzt gelöschten) Kommentar. Die einzige Möglichkeit, um dies zu beheben, entfernen Sie den Großteil Ihres Codes und erhalten ein sehr einfaches Beispiel arbeiten und arbeiten sich nach oben. Überprüfen Sie außerdem, ob Ihre Verbindung OLEDB oder ADO.Net ist. –