SSIS:如何将SQL语句从文件中提取到字符串变量中?

kub*_*ubi 3 sql variables ssis

我有几个SQL语句存储在文本文件中.如何将这些文件拉入SSIS中的字符串变量,以便在多个位置使用相同的查询?


回答问题:

查询冗长而复杂,我更喜欢在真正的文本编辑器中编辑,而不是在SSIS文本框中编辑.我还希望那些无法访问SSIS或不知道如何使用SSIS的人可以编辑查询.最后,每个查询用于许多不同的数据流.如果我错了,请纠正我,但如果我在多个位置使用相同的查询,我相信我必须使用变量或重写每个数据流的代码.

Tom*_*ter 8

这就是我做这件事的方式(在搜索到答案后找不到答案.)

我开始使用导出数据向导创建的包,因此我的说明与此相关.这样做可以设置列映射.如果您没有使用导出向导来创建包,则可能需要手动添加列.

  1. 将名为SQLFileName的字符串变量添加到包中.
  2. 将名为SQLCommand的字符串变量添加到包中.
  3. 在控制流的开头添加脚本任务.
  4. 编辑脚本任务并转到"脚本"部分.
  5. 将SQLFileName添加到ReadOnlyVariables部分.将其设置为.sql文件的路径.
  6. 将SQLCommand添加到ReadWriteVariables部分.
  7. 单击设计脚本.
  8. 粘贴在下面的脚本中.它只是将SqlFileName指定的文件内容读入SQLCommand.
  9. 确定您的出路并将脚本任务连接到控制流的其余部分.
  10. 转到数据流并选择源查询.您需要使用属性窗口编辑属性.如果您使用花哨的编辑窗口,您将收到有关未设置命令文本的错误.这是因为SQLCommand在设计时是空白的.
  11. 从变量将AccessMode更改为SQL命令.
  12. 在SQLVariableName下,选择SQLCommand.
  13. 您将看到红色X被添加到源查询中.那是因为SQLCommand是空白的.要防止红色X,请将ValidateExternalMetaData更改为False.

就是这样.我希望我记得所有的一切.该脚本是关键部分,因此您可以将SQL转换为变量,然后在数据流中使用该变量.


   Imports System
    Imports System.IO
    Imports Microsoft.SqlServer.Dts.Runtime

    Public Class ScriptMain

        Public Sub Main()

            Try

                Dts.Variables("SQLCommand").Value = System.IO.File.ReadAllText(Dts.Variables("SQLFileName").Value.ToString)

                Dts.TaskResult = Dts.Results.Success

            Catch oException As System.Exception

                Dts.TaskResult = Dts.Results.Failure

            End Try

        End Sub

    End Class
Run Code Online (Sandbox Code Playgroud)