powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
11 сообщений из 11, страница 1 из 1
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34821175
Талгат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!

Существует задача - закачивать в MSSQL 2005 только нужные данные по odbc. Пару дней разбирался с SSIS. Закачать данные я уже могу ) Теперь нужно закачать данные нужного мне диапазона.

Раньше, в DTS 2000, пользовался глобальными переменными, dtsrun и т.д.

Про dtexec уже знаю, про входящие глобальные переменные, data flow, script task тоже знаю. Единственное что пока не нашел - как изменить языком VB параметр sqlcommand у soruce'a в data flow task ...

Т.е. нужно изменить строку 'select * from A' на 'select * from A'+' where num='+GlobalVariable.Value, чтобы в итоге получить 'select * from A where num=5', где 5 - значение входящего параметра...
Обращаться к глобальной переменной тоже знаю как (вроде): Dts.Variables("VarName").Value, так что осталось узнать малое - как поменять sqlcommand...
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34826724
Талгат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не сталкивался?
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34826729
Талгат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если лень читать - вот вкратце вопрос:

как изменить языком VB параметр sqlcommand у soruce'a в data flow task
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34826782
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заводите Script Task, пихаете запрос в переменну, эту переменную меняете в скриптовой задаче. Соответственно настраивайте data flow task - запрос брать из переменной.
Не забудьте в свойствах скрипта указать переменную, что она будет изменяться.
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34826788
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменить непосредственно sqlcomand afaik нельзя. Настройка ее с помощью параметров не решит Вашей проблемы?
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34829624
Талгат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tpgЗаводите Script Task, пихаете запрос в переменну, эту переменную меняете в скриптовой задаче. Соответственно настраивайте data flow task - запрос брать из переменной.
Не забудьте в свойствах скрипта указать переменную, что она будет изменяться.

Спасибо, посмотрю настройки data flow task!
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34829633
Талгат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинИзменить непосредственно sqlcomand afaik нельзя. Настройка ее с помощью параметров не решит Вашей проблемы?

А с помощью параметров - это как? Случаем не через "=?" ?

В data flow не понял как назначать "?" переменные, нашел такое только в ExecuteSql Script Task - но это мне не подходит, нужно менять именно в data flow task. Буду разбираться!

Завтра попробую способ, предложенный tpg!
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34829642
Фотография Александр Волок (def1983)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще, как вариант:
--------------------
1) Создаете переменную на уровне пакета @var
2) Создаете вторую переменную @SQLCMD на уровне Data Flow и ставите для нее Evaluate As Expression = true.
3) В поле Expression для SQLCMD пишете такого вида запрос:
Код: plaintext
"select * from A where num=" + @[User::var]
4) В источнике в качестве запроса указываете переменную SQLCMD
5) При запуске, в DTEXEC назначаете значение для @var
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #34830289
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Талгат
В data flow не понял как назначать "?" переменные, нашел такое только в ExecuteSql Script Task - но это мне не подходит, нужно менять именно в data flow task. Буду разбираться!

Назначать надо не data flow taks ( это только контейнер), а конкретному data source внутри него.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #39624888
Сверчок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Волок (def1983),

Не поняла идею. Если в потоке источник допускает sql из переменной, например OLE DB, то не нужно никаких этажей, берем сразу переменную пакета. Если не допускает, типа ADO NET, то и вашим способом не затолкать
...
Рейтинг: 0 / 0
SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
    #39625196
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сверчок,

если использовать ваш пример с адонет...

1. в пакете создаёте переменную SqlCommand типа стринг для запроса к источнику
в экспрешене которой пишите, например:
"select * from table where id = "+ (DT_WSTR, 50)@[User::CurrentID]
где CurrentID будет у вас как-то меняться (циклом или ещё как)
2. добавляете в датафлоу адонет дата сорс
3. в контролфлоу ПКМ на датафлоу -> пропертиз -> експрешн -> раскрыть плюс, жмакнуть три точки
4. в выпадающем меню найти адонет_сорс_эскуэль_команд, сопоставить ему вашу переменную SqlCommand
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS: Изменение SqlCommand под входящий параметр или выборка нужных данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]