在SSIS执行SQL任务中的另一个SQL语句中注入动态SQL语句

时间:2014-08-27 17:29:42

标签: sql tsql ssis

如何使用SSIS中的执行SQL任务使代码A动态化?

代码A

SELECT SUM(DuplicateCount) AS TotalRow
FROM (
SELECT COUNT(ID + CheckCode) AS DuplicateCount
FROM Tbl_CheckCode
GROUP BY ID, CheckCode
HAVING COUNT(ID + CheckCode) > 1
) AS U

我已尝试将代码存储在对象变量中,因此我可以按如下方式使用它。

代码B

SELECT SUM(DuplicateCount) AS TotalRow
FROM (?) AS U

然而,似乎SSIS不允许这样做。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用另一个变量来创建整个SQL语句,并在执行SQL任务中使用它。

@CodeAVar = 'SELECT SUM(DuplicateCount) AS TotalRow
FROM (' + @CodeBVar + ') AS U'

答案 1 :(得分:1)

我已经明白了。

在执行SQL任务编辑器的表达式部分下,我将以下代码设置为 SQLStatementSource

"SELECT SUM(DuplicateCount) AS TotalRow
FROM (" + @[User::SQLQuery] + ") AS U"

并自动在“常规”部分的 SQLStatement 中生成以下代码:

SELECT SUM(DuplicateCount) AS TotalRow
FROM () AS U