SQL server запускает задание с параметром таблицы

#sql-server #stored-procedures #parameters #jobs #auto

#sql-сервер #хранимые процедуры #параметры #Вакансии #авто

Вопрос:

Я хочу запустить процедуру хранилища заданий Sql Server с параметром из таблицы. Параметр таблицы вставляется из Интернета. Таблица с идентификатором столбца (автоматическая идентификация), именем пользователя столбца. У меня есть процедура хранения, запущенная с этим параметром. Когда процедура сохранения запускает 1 параметр, она удаляет этот параметр и запускает следующий параметр. Код, моя работа заключается:

 DECLARE @name nvarchar(50);
select @name = username from [dbo].[Job_parameter];
EXEC [dbo].[SP_A] @username= @name;
  

Экзамен: когда в таблице есть имя пользователя в 1 строке, код выполняется нормально, но долго. но когда в таблице > 1 строки, выполнить задание не удается. Я запускаю задание с этим кодом с ошибкой
Можете ли вы мне помочь?
и я могу запустить задание автоматически, когда в параметре таблицы есть данные??
Экзаменационный код здесь:

https://dbfiddle.uk/?rdbms=sqlserver_2014amp;fiddle=a75b00a3d37291ad682c6732109dc28b

Комментарии:

1. Я не совсем понимаю, о чем вы здесь спрашиваете. Вы говорите, что ваш код завершается с ошибкой, однако вы не предоставляете ошибку, так откуда вы знаете, что это сбой? Если вам нужно запустить процедуру для нескольких строк, то вам, вероятно, потребуется создать параметр table type и передать его Процедуре вместо этого.

2. @ Larnu: когда я запускаю процедуру для нескольких строк, в этом запросе не отображаются сообщения об ошибках, это занимает много времени и не завершает запрос. Можете ли вы помочь мне, как запустить процедуру для нескольких строк из задания?

3. Что вы имеете в виду «из задания», задания агента? Запуск SQL в задании агента ничем не отличается от другого SQL. Без DDL вашей процедуры объяснение того, как это изменить, было бы невозможно. Однако, конечно, select @name = username from [dbo].[Job_parameter]; не будет работать так, как вы ожидаете, если Job_parameter содержит более 2 строк.

4. @ Larnu: я не очень хорошо разбираюсь в sql Server, я ищу в Google, поэтому запрос не подходит. Можете ли вы помочь мне решить эту проблему? я хочу запустить 1 задание, это задание запускает запрос, чтобы запустить процедуру сохранения для нескольких строк

5. Опять же, «Без DDL вашей процедуры объяснение того, как это изменить, было бы невозможно». Если вы не можете / не хотите предоставить нам DDL, тогда, как я и предлагал, используйте параметр table type.