Могу ли я сделать что-то вроде ниже, дайте мне знать IF @ parameter = 1 BEGIN ... query ... END IF @ parameter = 2 Нужен правильный синтаксис, если это возможно. Это соединение OLE DB. Не хранится Proc. просто sql-запросSSIS Выполнение SQL-задачи на основе параметра
ответ
DECLARE @param AS INT = ?;
IF @param = 1
BEGIN
SELECT 1 AS Y;
END
ELSE IF @param = 2
BEGIN
SELECT 2 AS Y;
END
Есть два вопросительных знак в запросе и, вероятно, вы проходили только одна переменные. Я видел код, где разработчики передают одно и то же значение дважды (или несколько) раз. Это неэффективно. Лучший способ - получить переданные параметры в переменных SSIS. Преимущества: 1. Вам нужно передать одно значение только один раз. 2. Что еще более важно, если вы изменили порядок, в котором переданные параметры были использованы в sql, вам не нужно изменять их порядок на пользовательском интерфейсе Execute SQL Task Editor // Parameters. Это то, что Энди Леонард предложил позже в своем ответе.
Вы можете. Предполагая, что вы ссылаетесь на SQL-задачу Execute, параметры в SQL-запросе Execute с использованием соединения OLE DB используют вопросительные знаки (?) В качестве заполнитель параметров. Вы сопоставляете заполнители с переменными SSIS на странице сопоставления параметров в задаче SQL Execute. В собственности SQLStatement вы напишете: (? = 1) (? = 2)
Если начать ... {некоторые T-SQL здесь} ... конец Если начать ... { некоторые T-SQL здесь} ... end
Это один из способов добиться того, что, я думаю, вы просите.
Другой способ - создать SQL-задачу Execute для чтения значения параметра @parameter из базы данных в переменную SSIS. Затем вы можете создать две задачи Execute SQL Tasks - одну с каждой опцией для T-SQL в качестве свойства SQLStatement - и использовать выражения для прецедентных ограничений для определения выполняемой задачи Execute SQL.
Надеется, что это помогает, : {>
Вы не можете использовать Execute SQL Task для запуска операторов Transact-SQL.
Для установки условного SQL-заявления на основе того, чего вы пытаетесь достичь.
В Execute редактора SQL Task
- В общей вкладке, оставьте SQLStatement пустым.
- В параметре вкладке отображения, добавьте параметр и карту переменной User :: Параметр для Имя параметра 0.
На вкладке Expression установите SQLStatementSource в
(DT_NUMERIC, 18, 0) @ [User :: Параметр] == 1? ... query 1 ...: ... query 2 ...
- 1. Параметр подключения SSIS на основе параметра/переменной
- 2. Выполнение пакета SSIS на основе флагового бита
- 3. Выполнение этапа сборки на основе значения параметра
- 4. Выполнение различных пакетов SSIS на основе Flat Имя файла
- 5. Выполнение задачи потока данных на основе условия в SSIS
- 6. SSIS Выполнение SQL-задачи с параметром
- 7. SSIS Выполнение SQL хранимых процедур Тип выходного параметра рассогласования
- 8. Выполнение набора данных на основе значения параметра -SSRS
- 9. Выполнение пакета SSIS с C#
- 10. Развертывание и выполнение SSIS
- 11. Выполнение вызова хранимой процедуры SSIS
- 12. Пакет SSIS на основе avariable
- 13. Выполнение программного пакета SSIS
- 14. SSIS Выполнение задачи sql
- 15. DataBind на основе параметра
- 16. Параллельное выполнение в ssis
- 17. Выполнение пакета SSIS в каталоге SSIS
- 18. Ошибки SSIS Выполнение обновления
- 19. SSIS Выполнение SQL Error: ""
- 20. Выполнение SSIS в SSMS
- 21. Выполнение задачи потока данных на основе переменной?
- 22. Выбор типа параметра на основе параметра шаблона
- 23. Выполнение пакета SSIS на сервере sql 2005
- 24. Ошибка на Выполнение SQL Task в SSIS
- 25. Выполнение задачи SSIS SQL, основанной на условии
- 26. Выполнение SSIS с удаленной машины
- 27. SSIS 2012 Выполнение с кодом
- 28. Извлечь результаты на основе параметра WordPress
- 29. Выполнение действия на основе полученных параметров
- 30. Выполнение SQL-запроса в SSIS
Если (? = 1) начало ... {здесь несколько T-SQL} ... end If (? = 2) begin ... {несколько T-SQL здесь} ... end Над sql работает ?? Я получаю сообщение об ошибке «Невозможно разобрать». Стреляйте мне правильный синтаксис – user1810575