#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.