【发布时间】:2019-03-15 11:52:02
【问题描述】:
我在执行 sql 任务中使用SELECT UpdateDate FROM dbo.log 命令。我对此很陌生,所以请多多包涵。我想将该值存储为变量,然后将其传递到后续数据流的 where 子句中。我的问题是:
- 设置执行 SQL 任务的正确方法是什么。一般来说,我有 OLE DB 连接并直接输入上面的查询。结果集设置为单行,然后我将其存储到我创建的名为 User::UpdateDate 的变量中。由于某种原因,这不起作用?
- 然后我想在数据流中调用这个日期。 IE。
SELECT * FROM Users WHERE RecordDate > User::UpdateDate。我相信语法是不同的。
我非常感谢您对此的帮助。非常感谢提前
【问题讨论】:
-
您是否在选择中返回了超过 1 个值,这不起作用(您因为它不起作用而得到什么错误)?在您的 SQL 任务中,您需要使用右侧的参数选项卡并在那里选择您的变量,然后使用 ?在您的查询中,以及?将关联到您在 SQL 任务的参数选项卡/列表中使用的变量
-
不,该表中只有一条记录。它带回了日期时间。 IE。 '15/03/2019 12:47'。我只想将其保存到第 1 步的变量中。
-
那么只要将结果集设置为 1 行,并且您有要返回的结果选项卡中的变量。转到结果集,然后单击添加,然后将您的变量名称放在那里。然后它将填充它。
-
感谢布拉德的帮助。不幸的是,这不起作用,要确认:ResultSet:SingleRow SQLStatement:SELECT UpdateDate FROM dbo.log。 ParameterMapping 为空,ResultSet ResultName:UpdateDate,VariableName:User::Variable。执行 SQL 步骤失败
-
您遇到什么错误?听起来可能会返回不止一条记录,因为您在选择中没有任何位置。或者你的变量数据类型不正确
标签: sql sql-server variables ssis etl