Udostępnij za pośrednictwem


sp_update_jobstep (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Zmienia ustawienie kroku w zadaniu używanym do wykonywania zautomatyzowanych działań w usłudze SQL Server Agent.

Transact-SQL konwencje składni

Składnia

sp_update_jobstep
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @step_id = ] step_id
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @command = ] N'command' ]
    [ , [ @additional_parameters = ] N'additional_parameters' ]
    [ , [ @cmdexec_success_code = ] cmdexec_success_code ]
    [ , [ @on_success_action = ] on_success_action ]
    [ , [ @on_success_step_id = ] on_success_step_id ]
    [ , [ @on_fail_action = ] on_fail_action ]
    [ , [ @on_fail_step_id = ] on_fail_step_id ]
    [ , [ @server = ] N'server' ]
    [ , [ @database_name = ] N'database_name' ]
    [ , [ @database_user_name = ] N'database_user_name' ]
    [ , [ @retry_attempts = ] retry_attempts ]
    [ , [ @retry_interval = ] retry_interval ]
    [ , [ @os_run_priority = ] os_run_priority ]
    [ , [ @output_file_name = ] N'output_file_name' ]
    [ , [ @flags = ] flags ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
[ ; ]

Argumenty

[ @job_id = ] 'job_id'

Numer identyfikacyjny zadania, do którego należy krok. @job_id jest unikatowyidentifierz wartością domyślną NULL.

Należy określić @job_id lub @job_name, ale nie można określić obu tych elementów.

[ @job_name = ] N'job_name'

Nazwa zadania, do którego należy krok. @job_name jest nazwa systemuz wartością domyślną NULL.

Należy określić @job_id lub @job_name, ale nie można określić obu tych elementów.

[ @step_id = ] step_id

Numer identyfikacyjny kroku zadania do zmodyfikowania. @step_id jest int bez wartości domyślnej. Nie można zmienić tej liczby.

[ @step_name = ] N'step_name'

Nowa nazwa kroku. @step_name jest nazwa systemuz wartością domyślną NULL.

[ @subsystem = ] PodsystemN"

Podsystem używany przez agenta programu SQL Server do wykonywania @command. @subsystem to nvarchar(40)z wartością domyślną NULL.

[ @command = ] N'polecenia"

Polecenia do wykonania za pomocą @subsystem. @command to nvarchar(max) z wartością domyślną NULL.

[ @additional_parameters = ] N'additional_parameters'

Zidentyfikowane tylko do celów informacyjnych. Nieobsługiwane. Zgodność w przyszłości nie jest gwarantowana.

[ @cmdexec_success_code = ] cmdexec_success_code

Wartość zwrócona przez polecenie podsystemu CmdExec wskazujące, że polecenie zostało wykonane pomyślnie. @cmdexec_success_code jest z wartością domyślną .

[ @on_success_action = ] on_success_action

Akcja do wykonania, jeśli krok zakończy się pomyślnie. @on_success_action jest tinyint, z wartością domyślną NULLi może być jedną z tych wartości.

Wartość Opis (akcja)
1 Zakończ pracę z powodzeniem
2 Zakończ pracę z niepowodzeniem
3 Przejdź do następnego kroku
4 Przejdź do kroku @on_success_step_id

[ @on_success_step_id = ] on_success_step_id

Numer identyfikacyjny kroku w tym zadaniu, który ma zostać wykonany, jeśli krok zakończy się pomyślnie, a @on_success_action to 4. @on_success_step_id jest int z wartością domyślną NULL.

[ @on_fail_action = ] on_fail_action

Akcja do wykonania, jeśli krok zakończy się niepowodzeniem. @on_fail_action jest tinyinti może mieć jedną z tych wartości.

Wartość Opis (akcja)
1 Zakończ pracę z powodzeniem
2 Zakończ pracę z niepowodzeniem
3 Przejdź do następnego kroku
4 Przejdź do kroku @on_fail_step_id

[ @on_fail_step_id = ] on_fail_step_id

Numer identyfikacyjny kroku do wykonania w przypadku niepowodzenia kroku i @on_fail_action jest 4. @on_fail_step_id jest int, z wartością domyślną NULL.

[ @server = ] N'server'

Zidentyfikowane tylko do celów informacyjnych. Nieobsługiwane. Zgodność w przyszłości nie jest gwarantowana.

[ @database_name = ] N'database_name'

Nazwa bazy danych, w której ma zostać wykonany krok Transact-SQL. @database_name jest sysname z wartością domyślną NULL. Nazwy ujęte w nawiasy kwadratowe ([]) nie są dozwolone.

[ @database_user_name = ] N'database_user_name'

Nazwa użytkownika bazy danych do użycia podczas wykonywania kroku Transact-SQL. @database_user_name jest nazwa_systemuz wartością domyślną NULL.

[ @retry_attempts = ] retry_attempts

Liczba ponownych prób użycia, jeśli ten krok zakończy się niepowodzeniem. @retry_attempts jest int z wartością domyślną NULL.

[ @retry_interval = ] retry_interval

Ilość czasu w minutach między ponownymi próbami. @retry_interval jest int z wartością domyślną NULL.

[ @os_run_priority = ] os_run_priority

Zidentyfikowane tylko do celów informacyjnych. Nieobsługiwane. Zgodność w przyszłości nie jest gwarantowana.

[ @output_file_name = ] N'output_file_name'

Nazwa pliku, w którym są zapisywane dane wyjściowe tego kroku. @output_file_name to nvarchar(200)z wartością domyślną NULL. Ten parametr jest prawidłowy tylko w przypadku poleceń uruchomionych w podsystemach Transact-SQL lub CmdExec.

Aby ustawić @output_file_name z powrotem na NULL, należy ustawić @output_file_name na pusty ciąg lub ciąg pustych znaków, ale nie można użyć funkcji CHAR(32).

Na przykład ustaw ten argument na pusty ciąg w następujący sposób:

@output_file_name = ' '

[ @flags = ] flagi

Opcja, która kontroluje zachowanie. @flags jest int z wartością domyślną NULL.

Wartość Opis Komentarz
0 (ustawienie domyślne) Zastępowanie pliku wyjściowego
2 Dołączanie do pliku wyjściowego
4 Zapisywanie danych wyjściowych kroku zadania Transact-SQL do historii kroków Zastosuj do typu: Transact-SQL, polecenia usług Analysis Services i zapytania analizy
8 Zapisywanie dziennika w tabeli (zastępowanie istniejącej historii)
16 Zapisywanie dziennika w tabeli (dołączanie do istniejącej historii)
32 Zapisywanie danych wyjściowych kroku zadania SSIS/CmdExe/PowerShell do historii kroków Zastosuj do typu: CmdExe, PowerShell i Pakiet usług integracji

[ @proxy_id = ] proxy_id

Identyfikator serwera proxy, w ramach którego jest uruchamiany krok zadania. @proxy_id jest int z wartością domyślną NULL. Jeśli nie określono @proxy_id, nie określono @proxy_name i nie określono @database_user_name, krok zadania jest uruchamiany jako konto usługi dla programu SQL Server Agent.

[ @proxy_name = ] N'proxy_name'

Nazwa serwera proxy, w ramach którego jest uruchamiany krok zadania. @proxy_name jest sysname z wartością domyślną NULL. Jeśli nie określono @proxy_id, nie określono @proxy_name i nie określono @database_user_name, krok zadania jest uruchamiany jako konto usługi dla programu SQL Server Agent.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Uwagi

sp_update_jobstep należy uruchomić z bazy danych msdb.

Aktualizowanie kroku zadania zwiększa numer wersji zadania.

Ta procedura składowana udostępnia nazwę sp_update_jobstep z podobnym obiektem dla usługi Azure Elastic Jobs dla usługi Azure SQL Database. Aby uzyskać informacje o wersji zadań elastycznych, zobacz jobs.sp_update_jobstep (Azure Elastic Jobs).

Uprawnienia

Możesz udzielić EXECUTE uprawnień do tej procedury, ale te uprawnienia mogą zostać zastąpione podczas uaktualniania programu SQL Server.

Inni użytkownicy muszą otrzymać jedną z następujących stałych ról bazy danych programu SQL Server Agent w bazie danych msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Aby uzyskać szczegółowe informacje o uprawnieniach tych ról, zobacz role stałej bazy danych agenta programu SQL Server.

Tylko członkowie sysadmin mogą zaktualizować krok zadania należącego do innego użytkownika.

Jeśli krok zadania wymaga dostępu do serwera proxy, twórca kroku zadania musi mieć dostęp do serwera proxy dla kroku zadania. Wszystkie podsystemy, z wyjątkiem języka Transact-SQL, wymagają konta serwera proxy. Członkowie sysadmin mają dostęp do wszystkich serwerów proxy i mogą używać konta usługi sql Server Agent dla serwera proxy.

Przykłady

Poniższy przykład zmienia liczbę ponownych prób pierwszego kroku zadania Weekly Sales Data Backup. Po uruchomieniu tego przykładu liczba ponownych prób jest 10.

USE msdb;
GO

EXECUTE dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10;
GO