我有一种情况,我需要使用单次执行 sql 任务将 2 个不同查询返回的值存储到 2 个不同的变量中。我知道单行结果集类型允许我们存储多个值,但它应该以单行形式返回。有人能帮忙吗?
问问题
1652 次
1 回答
1
如果要将两个不同查询的结果合并到一行,但有两列,则必须确保两者中定义的字段类型相同,并且与输出变量的类型定义相匹配。也就是说,如下例所示,Row1 必须与变量 test1 的类型相同,Row2 必须与变量 test2 的类型相同。
我使用您似乎可行的方案进行了测试。
1) 设置以下查询,组合两个嵌套查询的结果。
SELECT
(SELECT Row2 FROM Tests WHERE TestID = 4) AS Row1
,(SELECT Row2 FROM Tests WHERE TestID = 5) AS Row2
2) 由于返回的结果都是 varchar(或字符串)类型,我在 SSIS 包中设置了一个数据类型为“String”的变量,称为 test1,第二个变量称为 test2。
3) 创建一个执行 SQL 任务,为 SQLStatement 定义上述 SQL 语句,并将 ResultSet 设置为“单行”。
4) 对于结果集,我添加了两个新行。第一个结果名称为 0,变量名称为“User::test1”,第二个结果名称为 1,变量名称为“User::test2”。这里的想法是,查询中的 Row1 的结果将转到 test1,而 Row2 将转到 test2。
我执行了任务并且成功了。
让我知道这是否有帮助。
谢谢。
于 2013-03-20T19:12:45.200 回答