Aracılığıyla paylaş


sp_add_jobstep (Transact-SQL)

(Çalışma) bir adım ekler bir iş.

Topic link iconTransact-SQL sözdizimi kuralları

sp_add_jobstep [ @job_id = ] job_id | [ @job_name = ] 'job_name' 
     [ , [ @step_id = ] step_id ] 
     { , [ @step_name = ] 'step_name' } 
     [ , [ @subsystem = ] 'subsystem' ] 
     [ , [ @command = ] 'command' ] 
     [ , [ @additional_parameters = ] 'parameters' ] 
          [ , [ @cmdexec_success_code = ] code ] 
     [ , [ @on_success_action = ] success_action ] 
          [ , [ @on_success_step_id = ] success_step_id ] 
          [ , [ @on_fail_action = ] fail_action ] 
          [ , [ @on_fail_step_id = ] fail_step_id ] 
     [ , [ @server = ] 'server' ] 
     [ , [ @database_name = ] 'database' ] 
     [ , [ @database_user_name = ] 'user' ] 
     [ , [ @retry_attempts = ] retry_attempts ] 
     [ , [ @retry_interval = ] retry_interval ] 
     [ , [ @os_run_priority = ] run_priority ] 
     [ , [ @output_file_name = ] 'file_name' ] 
     [ , [ @flags = ] flags ] 
     [ , { [ @proxy_id = ] proxy_id 
         | [ @proxy_name = ] 'proxy_name' } ]

Bağımsız değişkenler

  • [ @job_id = ] job_id
    The identification number of the job to which to add the step.job_id is uniqueidentifier, with a default of NULL.

  • [ @job_name = ] 'job_name'
    The name of the job to which to add the step.job_name is sysname, with a default of NULL.

    Not

    Her iki job_id veya job_name belirtilmiş olması gerekir, ancak her ikisi de belirtilemiyor.

  • [ @step_id = ] step_id
    Sıra kimlik numarası iş adım.Adım tanımlama numaraları başlatma sırasında1 ve boşluklar. olmadan artırma Bir adım var sırada eklenirse, sıra numaraları otomatik olarak ayarlanır.A value is provided if step_id is not specified.step_idis int, with a default of NULL.

  • [ @step_name = ] 'step_name'
    The name of the step.step_nameis sysname, with no default.

  • [ @subsystem = ] 'subsystem'
    The subsystem used by the SQL Server Agent service to execute command.subsystem is nvarchar(40), and can be one of these values.

    Değer

    Açıklama

    'ACTIVESCRIPTING'

    Etkin komut dosyası

    Important noteImportant Note:
    This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

    'CMDEXEC'

    İşletim sistemi komutu veya bir yürütülebilir program

    'Dağıtım'

    Çoğaltma Distribution Agent'in iş

    'Anlık görüntü'

    Kopyalama anlık görüntü Aracısı iş

    'LOGREADER'

    Çoğaltma Günlük Okuyucu Aracısı işi

    'Birleştirme'

    Birleştirme Aracısı çoğaltma iş

    'QueueReader'

    Çoğaltma Queue Reader Agent iş

    'ANALYSISQUERY'

    Analysis Services sorgusu (MDX, DMX).

    'ANALYSISCOMMAND'

    Analysis Services komutu (XMLA).

    'DTS'

    Integration Services Paket yürütme

    'PowerShell'

    PowerShell Komut dosyası

    'TSQL' (varsayılan)

    Transact-SQL deyim

  • [ @command= ] 'command'
    The commands to be executed by SQLServerAgent service through subsystem.command is nvarchar(max), with a default of NULL.SQL Server Agent, yazılım programları yazarken değişkenlerini aynı esnekliği sağlayan simge değiştirme sağlar.

    Important noteImportant Note:

    InSQL Server 2005hizmet Pack 1,SQL ServerAracı iş adım simge sözdizimi değişti.Sonuç olarak, bir çıkış makrosu artık İş adımda kullanılan tüm simgeleri eşlik, ya da yoksa bu işlemi adımları başarısız olur.Ayrıca,SQL Server 2000sözdizimi, köşeli aramak için kullanılırSQL ServerAracı iş adımı simgeleri (örneğin, " [DATE]") de değişti.Şimdi adları simge parantez içine alın ve dolar işareti yerleştirmek gerekir ( $) simge sözdizimi. başındaÖrneğin:

    $(ESCAPE_Makro adı(DATE))

    Bu simgeler ve yeni simge sözdizimini kullanmak için iş adımları güncelleştirme hakkında daha fazla bilgi için bkz:Simgeleri iş adımları kullanarak.

    Security noteSecurity Note:

    Windows Olay günlüğü üzerine yazma izinleri olan herhangi bir Windows kullanıcı tarafından etkin iş adımları erişebilirsinizSQL ServerAracı uyarıları veya WMI uyarıları.Bu bir güvenlik riski önlemek içinSQL ServerAracı simgeleri işleri etkin uyarı olarak, kullanılabilir varsayılan olarak devre dışıBu simgeler şunlardır: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(özellik).

    Bu simgeleri kullanmak istiyorsanız, önce yalnızca güvenilen Windows güvenlik gruplarının üyeleri, Administrators grubunun gibi bilgisayar olay günlüğüne yazma izinlerine sahip olun buradaSQL Serveryer alır.Sonra sağ tıklatınSQL Server Agent Object Explorer'da özellikleri seçip uyarı System sayfasında sağlayan bu simgeleri. Uyarılar tüm iş yanıtlar için simgeleri Değiştir

  • [ @additional_parameters= ] 'parameters'
    Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.parametersisntext, varsayılan null değeri ile

  • [ @cmdexec_success_code = ] code
    The value returned by a CmdExec subsystem command to indicate that command executed successfully.codeis int, with a default of 0.

  • [ @on_success_action= ] success_action
    The action to perform if the step succeeds.success_actionis tinyint, and can be one of these values.

    Değer

    Açıklama (eylem)

    1 (Varsayılan)

    Başarı ile çıkın

    2

    Hatayla çıkın

    3

    Bir sonraki adıma geçin

    4

    Adıma on_success_step_id

  • [ @on_success_step_id = ] success_step_id
    The ID of the step in this job to execute if the step succeeds and success_actionis 4.success_step_idis int, with a default of 0.

  • [ @on_fail_action= ] fail_action
    The action to perform if the step fails.fail_actionis tinyint, and can be one of these values.

    Değer

    Açıklama (eylem)

    1

    Başarı ile çıkın

    2 (Varsayılan)

    Hatayla çıkın

    3

    Bir sonraki adıma geçin

    4

    Adıma on_fail_step_id

  • [ @on_fail_step_id= ] fail_step_id
    The ID of the step in this job to execute if the step fails and fail_actionis 4.fail_step_idis int, with a default of 0.

  • [ @server =] 'server'
    Identified for informational purposes only. Not supported. Future compatibility is not guaranteed.serverisnvarchar(30), varsayılan null değeri ile

  • [ @database_name= ] 'database'
    The name of the database in which to execute a Transact-SQL step.database is sysname, with a default of NULL, in which case the master database is used.Köşeli ayraçlar ([]) içine alınır adı verilir.İçin bir ActiveX iş adım,databaseadı komut dosyası kullanan kullanan dosyası kullanan dili, adım kullanır.

  • [ @database_user_name= ] 'user'
    The name of the user account to use when executing a Transact-SQL step.user is sysname, with a default of NULL.ZamanuserNULL, iş sahibinin kullanıcı bağlamı içinde adım çalışır durumdadatabase.

  • [ @retry_attempts= ] retry_attempts
    The number of retry attempts to use if this step fails.retry_attemptsis int, with a default of 0, which indicates no retry attempts.

  • [ @retry_interval= ] retry_interval
    The amount of time in minutes between retry attempts.retry_intervalis int, with a default of 0, which indicates a 0-minute interval.

  • [ @os_run_priority = ] run_priority
    Ayrılmış.

  • [ @output_file_name= ] 'file_name'
    The name of the file in which the output of this step is saved.file_nameis nvarchar(200), with a default of NULL.file_namecan include one or more of the tokens listed under command.Bu parametre yalnızca çalışan komutları geçerli olduğuTransact-SQL,CmdExecveya PowerShell alt.

  • [ @flags= ] flags
    Is an option that controls behavior.flags is int, and can be one of these values.

    Değer

    Açıklama

    0 (Varsayılan)

    Çıktı dosyasının üzerine yaz

    2

    Çıktı dosyasına ekleme

    4

    YazmaTransact-SQLGeçmiş adım adım çıktı iş

    8

    Günlüğe yazma tablo (varolan geçmiş üzerine yaz)

    16

    Tabloya yazma günlük (için varolan Geçmiş sona Ekle)

  • [ @ proxy_id= ] proxy_id
    The id number of the proxy that the job step runs as.proxy_id is type int, with a default of NULL.Yokproxy_idbelirtilen yokproxy_namebelirtilen ve hiçbiruser_namebelirtilen, iş adımı çalışan için hizmet hesabı olarakSQL ServerAracı.

  • [ @ proxy_name= ] 'proxy_name'
    The name of the proxy that the job step runs as.proxy_name is type sysname, with a default of NULL.Yokproxy_idbelirtilen yokproxy_namebelirtilen ve hiçbiruser_namebelirtilen, iş adımı çalışan için hizmet hesabı olarakSQL ServerAracı.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

None

Remarks

sp_add_jobstep çalıştırılmalıdır msdb veritabanını.

SQL Server Management Studio işleri yönetmenin kolay, grafik tabanlı bir yolunu sunar ve iş altyapısını kurma ve yönetmenin önerilen yoludur.

İş adımı oluşturan üyesi olmadığı sürece bir iş adımı proxy belirtmelisinizSistem Yöneticisi güvenlik rolü. sabit

Bir proxy tanımlananproxy_nameorproxy_id.

İzinler

Varsayılan olarak, üye sysadmin sabit sunucu rolü Bu saklı yordamı çalıştırabilirsiniz.Aşağıdakilerden birini diğer kullanıcılara verilmelidir SQL Server Veritabanı rollerini sabit Aracısı msdb veritabanı:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Bu roller, izinler hakkında daha fazla bilgi için bkz: SQL Server Agent Database Roles sabit.

İşlem adımı oluşturan iş adımı için proxy erişimi olması gerekir.Üyeleri,Sistem Yöneticisi erişim tüm proxy. sabit sunucu rolü olan Diğer kullanıcılar için bir proxy açıkça erişim verilmelidir.

Örnekler

Aşağıdaki örnek, veritabanı erişimi için Salt değişen bir iş adımı oluştururAdventureWorksveritabanı.Buna ek olarak, bu örnek bir 5 dakika bekleyin, sonra sorun her deneme 5 yeniden deneme girişimleri belirtir.

Not

Bu örnek, varsayarWeekly Sales Data Backupİş zaten.

USE msdb;
GO
EXEC sp_add_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_name = N'Set database to read only',
    @subsystem = N'TSQL',
    @command = N'ALTER DATABASE SALES SET READ_ONLY', 
    @retry_attempts = 5,
    @retry_interval = 5 ;
GO