Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: База данных SQL Azure
Добавляет шаг к существующему заданию в службе заданий Эластичных заданий Azure для База данных SQL Azure. Используйте jobs.sp_update_jobstep для изменения существующих шагов эластичного задания.
Эта хранимая процедура использует имя аналогичного sp_add_jobstep
объекта в SQL Server для службы агент SQL Server. Сведения о версии агент SQL Server см. в sp_add_jobstep.
Соглашения о синтаксисе Transact-SQL
Синтаксис
[jobs].sp_add_jobstep [ @job_name = ] 'job_name'
[ , [ @step_id = ] step_id ]
[ , [ @step_name = ] step_name ]
[ , [ @command_type = ] 'command_type' ]
[ , [ @command_source = ] 'command_source' ]
, [ @command = ] 'command'
[ , [ @credential_name = ] 'credential_name' ]
, [ @target_group_name = ] 'target_group_name'
[ , [ @initial_retry_interval_seconds = ] initial_retry_interval_seconds ]
[ , [ @maximum_retry_interval_seconds = ] maximum_retry_interval_seconds ]
[ , [ @retry_interval_backoff_multiplier = ] retry_interval_backoff_multiplier ]
[ , [ @retry_attempts = ] retry_attempts ]
[ , [ @step_timeout_seconds = ] step_timeout_seconds ]
[ , [ @output_type = ] 'output_type' ]
[ , [ @output_credential_name = ] 'output_credential_name' ]
[ , [ @output_subscription_id = ] 'output_subscription_id' ]
[ , [ @output_resource_group_name = ] 'output_resource_group_name' ]
[ , [ @output_server_name = ] 'output_server_name' ]
[ , [ @output_database_name = ] 'output_database_name' ]
[ , [ @output_schema_name = ] 'output_schema_name' ]
[ , [ @output_table_name = ] 'output_table_name' ]
[ , [ @job_version = ] job_version OUTPUT ]
[ , [ @max_parallelism = ] max_parallelism ]
Аргументы
@job_name
Имя задания, к которому добавляется этап. job_name — nvarchar(128).
@step_id
Порядковый идентификационный номер для шага задания. Последовательные идентификационные номера начинаются с 1 и увеличиваются без пропусков. Если существующий шаг уже имеет этот идентификатор, этот шаг и все следующие шаги будут увеличивать идентификаторы, чтобы этот новый шаг можно было вставить в последовательность. Если это не указано, step_id автоматически назначается последнему в последовательности шагов. step_id является int.
@step_name
Имя шага этапа. Необходимо указать, за исключением первого шага задания, которое (для удобства) имеет имя JobStep
по умолчанию. step_name — nvarchar(128).
@command_type
Тип команды, выполняемой на этом шаге задания. command_type имеет значение nvarchar(50) со значением по умолчанию, то есть значение TSql
параметра @command_type является скриптом T-SQL.
Если задано, значение должно быть TSql
.
@command_source
Тип расположения, в котором хранится команда. command_source имеет значение nvarchar(50) со значением по умолчанию, то есть значение Inline
параметра @command является литеральным текстом команды.
Если задано, значение должно быть Inline
.
@command
Допустимый скрипт T-SQL, который должен выполняться на этом шаге задания. команда — nvarchar(max), с значением по умолчанию NULL
.
@credential_name
Имя учетных данных с областью базы данных, хранящихся в этой базе данных управления заданием, которая используется для подключения к каждой из целевых баз данных в целевой группе при выполнении этого шага. credential_name — nvarchar(128).
При использовании проверки подлинности Microsoft Entra (ранее — Azure Active Directory) опустите параметр @credential_name , который следует предоставить только при использовании учетных данных с областью базы данных.
@target_group_name
Имя целевой группы, содержащей целевые базы данных, в которые будет выполняться шаг задания. target_group_name — nvarchar(128).
@initial_retry_interval_seconds
Задержка перед первой повторной попыткой в случае сбоя при первой попытке выполнения задания. initial_retry_interval_seconds имеет значение int с значением по умолчанию 1.
@maximum_retry_interval_seconds
Максимальная задержка между повторными попытками. Если задержка между повторными попытками увеличится больше, чем это значение, оно ограничивается этим значением. maximum_retry_interval_seconds имеет значение int с значением по умолчанию 120.
@retry_interval_backoff_multiplier
Коэффициент, на который умножается значение задержки перед повторной попыткой в случае нескольких попыток выполнения шага задания. Например, если перед первой попыткой задержка составляет 5 секунд, а коэффициент отхода равен 2,0, то задержка перед второй попыткой составит 10 секунд, а перед третьей — 20 секунд. retry_interval_backoff_multiplier — это реальный тип данных с значением по умолчанию 2.0.
@retry_attempts
Число попыток выполнения в случае сбоя первоначальной попытки. Например, если значение retry_attempts равно 10, то будет выполнена 1 начальная попытка и 10 повторных попыток, что дает в общей сложности 11 попыток. Если последняя попытка повтора завершается сбоем, выполнение задания завершится записью lifecycle
Failed
в jobs.job_executions. retry_attempts имеет значение int с значением по умолчанию 10.
@step_timeout_seconds
Максимальная продолжительность выполнения шага. Если это время превышено, выполнение задания завершится с lifecycle
TimedOut
записью в jobs.job_executions. step_timeout_seconds имеет значение int, при этом значение по умолчанию составляет 43 200 секунд (12 часов).
@output_type
Если нетNULL
, тип назначения, в который записывается первый результирующий набор команды. output_type — nvarchar(50) с значением по умолчаниюNULL
.
Если задано, значение должно быть SqlDatabase
.
@output_credential_name
Если значение не равно NULL, имя учетных данных в области базы данных, используемое для подключения к выходной целевой базе данных. Необходимо указать, если output_type равно SqlDatabase
. output_credential_name — nvarchar(128) со значением NULL
по умолчанию.
При использовании проверки подлинности Microsoft Entra (ранее Azure Active Directory) опустите параметр @output_credential_name , который следует указать только при использовании учетных данных с областью базы данных.
@output_subscription_id
Идентификатор подписки Azure, используемый для выходных данных. По умолчанию используется подписка агента задания. output_subscription_id является уникальным идентификатором.
@output_resource_group_name
Имя группы ресурсов, в которой находится выходная база данных. По умолчанию используется группа ресурсов агента заданий. output_resource_group_name — nvarchar(128).
@output_server_name
Если нетNULL
, полное DNS-имя сервера, содержащего выходную целевую базу данных, например: @output_server_name = 'server1.database.windows.net'
Необходимо указать, если output_type равно SqlDatabase
. output_server_name — nvarchar(256) с значением по умолчаниюNULL
.
@output_database_name
Если нет NULL
, имя базы данных, содержащей выходную целевую таблицу. Необходимо указать, если output_type равно SqlDatabase
. output_database_name — nvarchar(128) с значением по умолчаниюNULL
.
@output_schema_name
Если нет NULL
, имя схемы SQL, содержащей выходную целевую таблицу. Если output_type равно SqlDatabase
, значение по умолчанию равно dbo
. output_schema_name — nvarchar(128).
@output_table_name
Если нет NULL
, имя таблицы, в которую будет записан первый результирующий набор команды. Если таблица еще не существует, она будет создана на основе схемы возвращаемого результирующий набор. Необходимо указать, если output_type равно SqlDatabase
. output_table_name — nvarchar(128) со значением NULL
по умолчанию.
При указании output_table_name учетные данные агента заданий или учетные данные с областью базы данных должны быть предоставлены необходимые разрешения для создания данных TABLE и INSERT в таблицу.
@job_version ВЫПУСК
Параметр вывода, которому будет присвоен номер версии нового задания. job_version является int.
@max_parallelism ВЫПУСК
Максимальный уровень параллелизма на эластичный пул.
Если этот аргумент задан, то шаг задания сможет обрабатывать не больше указанного максимального числа баз данных на эластичный пул. Это относится к каждому эластичному пулу, который напрямую входит в целевую группу или к эластичным пулам внутри сервера, включенного в целевую группу. max_parallelism имеет значение int.
Значения кода возврата
0
(успешно) или 1
(сбой).
Замечания
После sp_add_jobstep
успешного выполнения текущий номер версии задания увеличивается. При следующем выполнении задания будет использоваться его новая версия. Если идет выполнение задания, то оно не будет включать в себя новый шаг.
- При использовании проверки подлинности Microsoft Entra для проверки подлинности на целевых серверах или базах данных @credential_name и @output_credential_name аргументы не должны быть предоставлены
sp_add_jobstep
илиsp_update_jobstep
. - При использовании учетных данных с областью базы данных для проверки подлинности на целевых серверах/базах данных требуется
sp_add_jobstep
параметр @credential_name.sp_update_jobstep
Например,@credential_name = 'job_credential'
.
Разрешения
По умолчанию эту хранимую процедуру могут выполнять только члены предопределенной роли сервера sysadmin . Только участники роли sysadmin могут использовать эту хранимую процедуру для редактирования атрибутов заданий, которыми владеют другие пользователи.
Примеры
Создание шага задания для выполнения инструкции T-SQL
В следующем примере показано, как создать эластичное задание для выполнения инструкции T-SQL в эластичном задании. В следующем примере для jobs.sp_add_jobstep
создания шага задания в именованном CreateTableTest
задании выполняется целевая группа PoolGroup
.
Подключитесь к следующей команде job_database
и выполните следующую команду:
--Connect to the job database specified when creating the job agent
--Add job for create table
EXEC jobs.sp_add_job @job_name = 'CreateTableTest', @description = 'Create Table Test';
-- Add job step for create table
EXEC jobs.sp_add_jobstep @job_name = 'CreateTableTest',
@command = N'IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id(''Test''))
CREATE TABLE [dbo].[Test]([TestId] [int] NOT NULL);',
@target_group_name = 'PoolGroup';
Создание шага задания для выполнения инструкции T-SQL и сбора результатов
В следующем примере показано, как создать эластичное задание для выполнения инструкции T-SQL в эластичном задании и сбора результатов в База данных SQL Azure. В следующем примере для jobs.sp_add_jobstep
создания шага задания в именованном ResultsJob
задании выполняется целевая группа PoolGroup
. Результаты записываются в таблицу с именем dbo.results_table
в базе данных с именем Results
на сервере server1.database.windows.net
.
--Connect to the job database specified when creating the job agent
-- Add a job to collect perf results
EXEC jobs.sp_add_job @job_name ='ResultsJob', @description='Collection Performance data from all customers'
-- Add a job step w/ schedule to collect results
EXEC jobs.sp_add_jobstep
@job_name = 'ResultsJob',
@command = N' SELECT DB_NAME() DatabaseName, $(job_execution_id) AS job_execution_id, * FROM sys.dm_db_resource_stats WHERE end_time > DATEADD(mi, -20, GETDATE());',
@target_group_name = 'PoolGroup',
@output_type = 'SqlDatabase',
@output_server_name = 'server1.database.windows.net',
@output_database_name = 'Results',
@output_schema_name = 'dbo',
@output_table_name = 'results_table';