SSIS Выбрать * Из (Таблица переменных) Выполнить SQL Задача - PullRequest
0 голосов
/ 21 января 2020

У меня есть пример таблицы Month12_2010, month11_2010, month10_2010 .... et c

, и я хочу использовать EXECUTE SQL TASK для вставки данных из таблицы month в новую таблицу ALLMONTH enter image description here

как использовать SQL ЗАДАЧА для вставки данных

Вот так выглядит мой запрос

вставить в ALLMONTH FROM (переменная Month12_2010) как месяц

без изменения запроса, а только изменение переменной?

1 Ответ

1 голос
/ 21 января 2020

Сначала создайте еще одну переменную в SSIS, которая является типом данных String, и дайте ей соответствующее имя (я собираюсь предположить SQLStatement). Затем, вместо того, чтобы установить его значение, установите его значение как выражение с последующим выражением, очевидно исправляя часть в фигурных скобках ({}) и меняя выражение так, как вам нужно:

"SELECT * FROM dbo." + @[User::{YourVariable}] + " AS MyTable;"

Затем в задании «Выполнить» SQL измените значение SQLSourceType на Variable, а затем значение SourceVariable на User::SQLStatement. Тогда SSIS вместо этого запустит оператор в переменной.

Альтернативный (и более безопасный) подход - использовать вместо этого оператор «параметризованный»; вместо введения значения в оператор переменной в SSIS. В значении SQLStatement (свойство задачи «Выполнить» SQL, а не переменная) введите оператор как:

DECLARE @TableName sysname = ?;
DECLARE @SQL nvarchar(MAX);

SET @SQL = N'SELECT * FROM dbo.' + QUOTENAME(@TableName) + N' AS MyTable;';

EXEC sp_executesql @SQL;

Затем в области отображения параметров передайте свою переменную (для Dynami c имя таблицы) в качестве параметра для оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...