Вот как я поступил именно так (после поиска повсюду ответа и не поиска ни одного).
Я начал с пакета, созданного мастером экспорта данных, поэтому мои инструкции относятся к этому. Делая это таким образом, настраивает сопоставления столбцов. Если вы не использовали мастер экспорта для создания пакета, возможно, вам придется добавлять столбцы вручную.
- Добавьте строковую переменную с именем SQLFileName в пакет.
- Добавить строковую переменную с именем SQLCommand в пакет.
- Добавить задачу сценария в начале потока управления.
- Отредактируйте задачу «Сценарий» и перейдите в раздел «Сценарий».
- Добавьте SQLFileName в раздел ReadOnlyVariables. Установите это
путь к вашему файлу .sql.
- Добавьте SQLCommand в раздел ReadWriteVariables.
- Нажмите Сценарий проектирования.
- Вставьте в скрипт ниже. Он просто читает в содержании
файл, указанный SqlFileName в
SQLCommand.
- OK, выход и подключите задачу сценария к остальной части вашего потока управления.
- Перейдите в свой поток данных и выберите запрос источника. Вам нужно будет
редактировать свойства с помощью
окно свойств. Если вы используете
модное окно редактирования, вы получите
ошибка в тексте команды отсутствует
быть установленным Это потому что SQLCommand
пуст во время разработки.
- Измените AccessMode на команду SQL из переменной.
- В SQLVariableName выберите SQLCommand.
- Вы увидите, что красный 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