sp_update_jobstep (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Mengubah pengaturan untuk langkah dalam pekerjaan yang digunakan untuk melakukan aktivitas otomatis di layanan SQL Server Agent.

Konvensi sintaks transact-SQL

Sintaks

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' ]
[ ; ]

Argumen

[ @job_id = ] 'job_id'

Nomor identifikasi pekerjaan tempat langkah berada. @job_id adalah uniqueidentifier, dengan default NULL.

Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.

[ @job_name = ] N'job_name'

Nama pekerjaan tempat langkah tersebut berada. @job_name adalah sysname, dengan default NULL.

Baik @job_id atau @job_name harus ditentukan, tetapi keduanya tidak dapat ditentukan.

[ @step_id = ] step_id

Nomor identifikasi untuk langkah pekerjaan yang akan dimodifikasi. @step_id int, tanpa default. Nomor ini tidak dapat diubah.

[ @step_name = ] N'step_name'

Nama baru untuk langkah tersebut. @step_name adalah sysname, dengan default NULL.

[ @subsystem = ] N'subsistem'

Subsistem yang digunakan oleh SQL Server Agent untuk menjalankan @command. @subsystem adalah nvarchar(40), dengan default NULL.

[ @command = ] N'command'

Perintah yang akan dijalankan melalui @subsystem. @command adalah nvarchar(max), dengan default NULL.

[ @additional_parameters = ] N'additional_parameters'

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

[ @cmdexec_success_code = ] cmdexec_success_code

Nilai yang dikembalikan oleh perintah subsistem CmdExec untuk menunjukkan bahwa perintah berhasil dijalankan. @cmdexec_success_code int, dengan default NULL.

[ @on_success_action = ] on_success_action

Tindakan yang harus dilakukan jika langkah berhasil. @on_success_action kecil, dengan default NULL, dan bisa menjadi salah satu nilai ini.

Value Deskripsi (tindakan)
1 Keluar dengan sukses
2 Keluar dengan kegagalan
3 Masuk ke langkah berikutnya
4 Buka langkah @on_success_step_id

[ @on_success_step_id = ] on_success_step_id

Nomor identifikasi langkah dalam pekerjaan ini untuk dijalankan jika langkah berhasil dan @on_success_action adalah 4. @on_success_step_id int, dengan default NULL.

[ @on_fail_action = ] on_fail_action

Tindakan yang harus dilakukan jika langkah gagal. @on_fail_action kecil, dan dapat memiliki salah satu nilai ini.

Value Deskripsi (tindakan)
1 Keluar dengan sukses
2 Keluar dengan kegagalan
3 Masuk ke langkah berikutnya
4 Buka langkah @on_fail_step_id

[ @on_fail_step_id = ] on_fail_step_id

Nomor identifikasi langkah dalam pekerjaan ini untuk dijalankan jika langkah gagal dan @on_fail_action adalah 4. @on_fail_step_id int, dengan default NULL.

[ @server = ] N'server'

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

[ @database_name = ] N'database_name'

Nama database untuk menjalankan langkah Transact-SQL. @database_name adalah sysname, dengan default NULL. Nama yang diapit dalam tanda kurung siku ([]) tidak diizinkan.

[ @database_user_name = ] N'database_user_name'

Nama pengguna database yang akan digunakan saat menjalankan langkah Transact-SQL. @database_user_name adalah sysname, dengan default NULL.

[ @retry_attempts = ] retry_attempts

Jumlah percobaan ulang yang akan digunakan jika langkah ini gagal. @retry_attempts int, dengan default NULL.

[ @retry_interval = ] retry_interval

Jumlah waktu dalam menit antara upaya percobaan ulang. @retry_interval int, dengan default NULL.

[ @os_run_priority = ] os_run_priority

Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.

[ @output_file_name = ] N'output_file_name'

Nama file tempat output langkah ini disimpan. @output_file_name adalah nvarchar(200), dengan default NULL. Parameter ini hanya valid dengan perintah yang berjalan di subsistem Transact-SQL atau CmdExec .

Untuk mengatur @output_file_name kembali ke NULL, Anda harus mengatur @output_file_name ke string kosong, atau ke string karakter kosong, tetapi Anda tidak dapat menggunakan fungsi .CHAR(32)

Misalnya, atur argumen ini ke string kosong sebagai berikut:

@output_file_name = ' '

[ @flags = ] bendera

Opsi yang mengontrol perilaku. @flags int, dengan default NULL.

Nilai Deskripsi
0 (default) Timpa file output
2 Tambahkan ke file output
4 Tulis output langkah pekerjaan Transact-SQL ke riwayat langkah
8 Menulis log ke tabel (timpa riwayat yang ada)
16 Menulis log ke tabel (tambahkan ke riwayat yang ada)

[ @proxy_id = ] proxy_id

Nomor ID proksi tempat langkah pekerjaan berjalan. @proxy_id int, dengan default NULL. Jika tidak ada @proxy_id yang ditentukan, tidak ada @proxy_name yang ditentukan, dan tidak ada @database_user_name yang ditentukan, langkah pekerjaan berjalan sebagai akun layanan untuk SQL Server Agent.

[ @proxy_name = ] N'proxy_name'

Nama proksi tempat langkah pekerjaan berjalan. @proxy_name adalah sysname, dengan default NULL. Jika tidak ada @proxy_id yang ditentukan, tidak ada @proxy_name yang ditentukan, dan tidak ada @database_user_name yang ditentukan, langkah pekerjaan berjalan sebagai akun layanan untuk SQL Server Agent.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_update_jobstep harus dijalankan dari msdb database.

Memperbarui langkah pekerjaan akan meningkatkan nomor versi pekerjaan.

Prosedur tersimpan sp_update_jobstep ini berbagi nama dengan objek serupa untuk layanan Azure Elastic Jobs untuk Azure SQL Database. Untuk informasi tentang versi pekerjaan elastis, lihat jobs.sp_update_jobstep (Pekerjaan Azure Elastic) (Transact-SQL).

Izin

Prosedur tersimpan ini dimiliki oleh peran db_owner . Anda dapat memberikan EXECUTE izin untuk pengguna mana pun, tetapi izin ini dapat ditimpa selama peningkatan SQL Server.

Pengguna lain harus diberikan salah satu peran database tetap SQL Server Agent berikut dalam msdb database:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Untuk detail tentang izin peran ini, lihat Peran Database Tetap Agen SQL Server.

Hanya anggota sysadmin yang dapat memperbarui langkah pekerjaan pekerjaan yang dimiliki oleh pengguna lain.

Jika langkah pekerjaan memerlukan akses ke proksi, pembuat langkah pekerjaan harus memiliki akses ke proksi untuk langkah pekerjaan. Semua subsistem, kecuali Transact-SQL, memerlukan akun proksi. Anggota sysadmin memiliki akses ke semua proksi, dan dapat menggunakan akun layanan SQL Server Agent untuk proksi.

Contoh

Contoh berikut mengubah jumlah upaya coba lagi untuk langkah Weekly Sales Data Backup pertama pekerjaan. Setelah Anda menjalankan contoh ini, jumlah upaya coba lagi adalah 10.

USE msdb;
GO

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