Aracılığıyla paylaş


sp_update_jobstep (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

SQL Server Agent hizmetinde otomatik etkinlikler gerçekleştirmek için kullanılan bir işteki bir adımın ayarını değiştirir.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Bağımsız değişken

[ @job_id = ] 'job_id'

Adımın ait olduğu işin kimlik numarası. @job_id, varsayılanı ilebenzersizleştiricidir.

@job_id veya @job_name belirtilmelidir, ancak her ikisi de belirtilemiyor.

[ @job_name = ] N'job_name'

Adımın ait olduğu işin adı. @job_name sysnameve varsayılan olarak .

@job_id veya @job_name belirtilmelidir, ancak her ikisi de belirtilemiyor.

[ @step_id = ] step_id

Değiştirilecek iş adımının kimlik numarası. @step_id,varsayılan olmayan bir değerdir. Bu sayı değiştirilemez.

[ @step_name = ] N'step_name'

Adım için yeni bir ad. @step_name, varsayılanı ilesysname'dir.

[ @subsystem = ] N'alt sistem'

SQL Server Aracısı tarafından @commandyürütmek için kullanılan alt sistem. @subsystemnvarchar(40)NULLvarsayılan değeridir.

[ @command = ] N'komutu'

@subsystemaracılığıyla yürütülecek komutlar. @command, varsayılan olarak olannvarchar(max) değeridir.

[ @additional_parameters = ] N'additional_parameters'

Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmez. Gelecekteki uyumluluk garanti edilmemektedir.

[ @cmdexec_success_code = ] cmdexec_success_code

CmdExec alt sistem komutu tarafından döndürülen değer, komutun başarıyla yürütüldüğünü. @cmdexec_success_code, varsayılan olarak olan.

[ @on_success_action = ] on_success_action

Adım başarılı olursa gerçekleştirilecek eylem. @on_success_action, varsayılan olarak olantinyint'tir ve bu değerlerden biri olabilir.

Değer Açıklama (eylem)
1 Başarılı bir şekilde çıkın
2 Hatayla çık
3 Sonraki adıma git
4 @on_success_step_id adıma gidin

[ @on_success_step_id = ] on_success_step_id

Adım başarılı olursa ve @on_success_action4bu işte yürütülecek adımın kimlik numarasıdır. @on_success_step_id, varsayılan olarak .

[ @on_fail_action = ] on_fail_action

Adım başarısız olursa gerçekleştirilecek eylem. @on_fail_actiontinyint'tir ve bu değerlerden birine sahip olabilir.

Değer Açıklama (eylem)
1 Başarılı bir şekilde çıkın
2 Hatayla çık
3 Sonraki adıma git
4 @on_fail_step_id adıma gidin

[ @on_fail_step_id = ] on_fail_step_id

Adım başarısız olursa ve @on_fail_action4ise bu işte yürütülecek adımın kimlik numarası. @on_fail_step_id, varsayılan olarak olan.

[ @server = ] N'sunucusu'

Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmez. Gelecekteki uyumluluk garanti edilmemektedir.

[ @database_name = ] N'database_name'

Transact-SQL adımının yürütüldiği veritabanının adı. @database_name, varsayılanı ile sysname. Köşeli ayraç ([]) içine alınmış adlara izin verilmez.

[ @database_user_name = ] N'database_user_name'

bir Transact-SQL adımı yürütürken kullanılacak veritabanı kullanıcısının adı. @database_user_name, varsayılanı ile sysname.

[ @retry_attempts = ] retry_attempts

Bu adım başarısız olursa yeniden deneme denemesi sayısı. @retry_attempts, varsayılan olarak olan.

[ @retry_interval = ] retry_interval

Yeniden deneme girişimleri arasındaki dakika cinsinden süre. @retry_interval, varsayılan olarak olan.

[ @os_run_priority = ] os_run_priority

Yalnızca bilgilendirme amacıyla tanımlanır. Desteklenmez. Gelecekteki uyumluluk garanti edilmemektedir.

[ @output_file_name = ] N'output_file_name'

Bu adımın çıktısının kaydedildiği dosyanın adı. @output_file_namenvarchar(200)NULLvarsayılan değeridir. Bu parametre yalnızca Transact-SQL veya CmdExec alt sistemlerinde çalışan komutlarla geçerlidir.

@output_file_name yeniden NULLolarak ayarlamak için, @output_file_name boş bir dizeye veya boş karakter dizesine ayarlamanız gerekir, ancak CHAR(32) işlevini kullanamazsınız.

Örneğin, bu bağımsız değişkeni aşağıdaki gibi boş bir dize olarak ayarlayın:

@output_file_name = ' '

[ @flags = ] bayrakları

Davranışı denetleyebilen bir seçenek. @flags, varsayılan olarak olan.

Değer Açıklama Yorum
0 (varsayılan) Çıktı dosyasının üzerine yazma
2 Çıktı dosyasına ekle
4 Transact-SQL iş adımı çıkışını adım geçmişine yazma Türe Uygula: Transact-SQL, Analysis Services Komutu ve Analysis Query
8 Tabloya günlük yazma (var olan geçmişin üzerine yazma)
16 Tabloya günlük yazma (var olan geçmişe ekleme)
32 Adım geçmişine SSIS/CmdExe/PowerShell iş adımı çıkışı yazma Türe Uygula: CmdExe, PowerShell ve Integration Services Paketi

[ @proxy_id = ] proxy_id

İş adımının çalıştığı proxy'nin kimlik numarası. @proxy_idint, varsayılan olarak NULL. Hiçbir @proxy_id belirtilmezse, @proxy_name belirtilmez ve @database_user_name belirtilmezse, iş adımı SQL Server Aracısı için hizmet hesabı olarak çalışır.

[ @proxy_name = ] N'proxy_name'

İş adımının çalıştığı proxy'nin adı. @proxy_name, varsayılanı ilesysname'dir. Hiçbir @proxy_id belirtilmezse, @proxy_name belirtilmez ve @database_user_name belirtilmezse, iş adımı SQL Server Aracısı için hizmet hesabı olarak çalışır.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Açıklamalar

sp_update_jobstep msdb veritabanından çalıştırılmalıdır.

bir iş adımının güncelleştirilmesi, iş sürüm numarasını artırır.

Bu saklı yordam, adını Azure SQL Veritabanıiçin Azure Elastik İşler hizmeti için benzer bir nesneyle paylaşır. Elastik işler sürümü hakkında bilgi için bkz. jobs.sp_update_jobstep (Azure Elastik İşler).

İzinler

Bu yordamda EXECUTE izinler vekleyebilirsiniz, ancak bu izinler SQL Server yükseltmesi sırasında geçersiz kılınabilir.

Diğer kullanıcılara msdb veritabanında aşağıdaki SQL Server Aracısı sabit veritabanı rollerinden biri verilmelidir:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Bu rollerin izinleri hakkında ayrıntılı bilgi için bkz. SQL Server Agent Sabit Veritabanı Rolleri.

Yalnızca sysadmin üyeleri, başka bir kullanıcının sahip olduğu bir işin iş adımını güncelleştirebilir.

İş adımı bir ara sunucuya erişim gerektiriyorsa, iş adımının oluşturucusunun iş adımı için ara sunucuya erişimi olmalıdır. Transact-SQL dışındaki tüm alt sistemler bir proxy hesabı gerektirir. sysadmin üyeleri tüm proxy'lere erişebilir ve ara sunucu için SQL Server Aracısı hizmet hesabını kullanabilir.

Örnekler

Aşağıdaki örnek, Weekly Sales Data Backup işinin ilk adımı için yeniden deneme denemelerinin sayısını değiştirir. Bu örneği çalıştırdıktan sonra yeniden deneme denemelerinin sayısı 10.

USE msdb;
GO

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