我在执行sql任务中使用SELECT UpdateDate FROM dbo.log
命令。我对此很陌生,所以请忍受我。我想将值存储为变量,然后将其传递到后续数据流的where子句中。我的问题是:
SELECT * FROM Users WHERE RecordDate > User::UpdateDate
。我认为语法与此不同。 我非常感谢您的帮助。提前非常感谢
答案 0 :(得分:2)
在Execute SQL Task Editor中,配置参数映射,如下所示,显然使用您自己的变量,在本示例中,我正在使用PackageStartTime
。
然后在您的SQL语句中,使用以下内容:
SELECT * FROM Users WHERE RecordDate > ?
要保存SQL语句中的值,您需要将结果集设置为单行并配置结果集,如下例所示:
答案 1 :(得分:2)
首先,创建类型为System.Date
的变量,例如:@[User::UpdateDate]
。
添加执行SQL任务,选择OLEDB连接,并使用以下命令作为SQL语句:
SELECT TOP 1 UpdateDate FROM dbo.log
将ResultSet
属性设置为Single Row
,然后在ResultSet选项卡中添加具有以下值的行:
ResultName = 0 (which means the first column)
VariableName = @[User::UpdateDate]
其他信息
在“数据流任务”中,添加OLEDB源,然后选择Access Mode
至SQL Command
。并编写以下命令:
SELECT * FROM Users WHERE RecordDate > ?
单击Parameters
按钮,然后将变量@[User::UpdateDate]
映射为第一个参数。
其他信息