Aracılığıyla paylaş


sp_add_jobstep (Transact-SQL)

Bir işadım (işlem) ekler.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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
    Kimlik numarası iş adım eklenecek.job_idİş uniqueidentifier, varsayılan değer null.

  • [ @ job_name =] 'job_name'
    iş adım eklemek için adı.job_nameİş sysname, varsayılan değer null.

    Not

    Ya da job_id veya job_name belirtilmesi gerekir, ancak her ikisi de belirtilemez.

  • [ @ step_id =] step_id
    iş adım sırası kimlik numarası.Kimlik numaraları başlangıcında adım 1 ve boşluk olmadan artış.Bir adımda varolan sırayla eklediyseniz, sıra numaraları otomatik olarak ayarlanır.Bir değer, sağlanan step_id belirtilmezse.step_idİş int, varsayılan değer null.

  • [ @ step_name =] 'step_name'
    Adım adı.step_nameİş sysname, ile hiçbir varsayılan.

  • [ @ alt =] 'subsystem'
    Alt sistemi tarafından kullanılan SQL Server yürütmekAracısı hizmet command.subsystemİş nvarchar(40), ve bu değerleri. birisi olabilir

    Değer

    Açıklama

    'ACTIVESCRIPTING'

    Etkin komut dosyası

    Önemli notÖnemli
    Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

    'cmdexec'

    İşletim sistemi komut veya yürütülebilir program

    'Dağıtım'

    Çoğaltma Dağıtım Aracısını iş

    'Anlık görüntü'

    Çoğaltma Anlık Görüntü Aracısı iş

    'logreader'

    Yineleme Günlük Okuyucu Aracısı iş

    'BİRLEŞTİRME'

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

    'QueueReader'

    Çoğaltma sırası okuma Aracısı iş

    'ANALYSISQUERY'

    Analysis Services sorgu (MDX, DMX).

    'ANALYSISCOMMAND'

    Analysis Services komut (XMLA).

    'DTS'

    Integration Services paket yürütme

    'PowerShell'

    PowerShell komut dosyası

    'tsql' (Varsayılan)

    Transact-SQL deyim

  • [ @command= ] 'command'
    Tarafından yürütülecek komutların SQLServerAgent hizmet aracılığıyla subsystem.commandİş nvarchar(max), varsayılan değer null.SQL Server Agent değişkenleri sağlayan yazılım programları yazarken aynı esneklik sunan token alternatifi sağlar.

    Önemli notÖnemli

    De SQL Server 2005 Service Pack 1, SQL Server Aracısı iş adım belirteç sözdizimi değişti.Sonuç olarak, bir çıkış makrosu şimdi iş adımda kullanılan tüm belirteçler eşlik gerekir, veya bildirimin bu iş adımları başarısız olur.Buna ek olarak, SQL Server 2000 sözdizimi, köşeli dışarıya çağrı için kullanılan SQL Server Aracısı iş adım belirteçler (örneğin, "[DATE]") de değişti.Şimdi simge adları parantez içine alın ve dolar işareti koyun gerekir ($) başında belirteç sözdizimi.Örneğin:

    $(ESCAPE_Makro adı(DATE))

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

    Güvenlik notuGüvenlik Notu

    Windows olay günlüğü üzerine yazma izinleri olan herhangi bir Windows kullanıcı tarafından etkin iş adımları erişebilirsiniz SQL Server Agent uyarıları veya WMI uyarıları.Bu bir güvenlik riski önlemek için SQL Server Aracısı belirteçleri görevlerle etkinleştirilmiş uyarıları tarafından kullanılabilecek varsayılan olarak devre dışıBu simgeleri şunlardır: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(özellik).

    Bu belirteçler kullanmanız gerekirse, önce yalnızca güvenilen Windows Güvenlik gruplarının üyeleri, Yöneticiler grubu gibi bilgisayarın olay günlüğüne yazma izinlerine sahip olun burada SQL Server bulunuyor.Sağ SQL Server Agent Object Explorer'da seçin Özelliklerve Alert System sayfa, select Uyarılar tüm iş yanıtları belirteçleri Değiştir bu simgeleri etkinleştirmek için.

  • [ @ additional_parameters= ] 'parameters'
    Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez. parametersİş ntext, varsayılan değer null.

  • [ @ cmdexec_success_code = ] code
    Tarafından döndürülen değeri bir CmdExec belirtmek için alt komutu command başarıyla yürütüldü.codeİş int, varsayılan değer 0.

  • [ @ on_success_action= ] success_action
    Adım başarılı olursa gerçekleştirilecek eylem .success_actionİş tinyint, ve bu değerleri. birisi olabilir

    Değer

    Açıklama (eylem)

    1 (varsayılan)

    Başarı ile çıkın

    2

    Hatası ile çıkın

    3

    Sonraki adıma geçin

    4

    Adıma gidinon_success_step_id

  • [ @ on_success_step_id = ] success_step_id
    Bu iş adım adım başarılı olursa yürütmek için Kimliğini ve success_actionolan 4.success_step_idİş int, varsayılan değer 0.

  • [ @ on_fail_action= ] fail_action
    Adım başarısız olursa gerçekleştirilecek eylem .fail_actionİş tinyint, ve bu değerleri. birisi olabilir

    Değer

    Açıklama (eylem)

    1

    Başarı ile çıkın

    2 (varsayılan)

    Hatası ile çıkın

    3

    Sonraki adıma geçin

    4

    Adıma gidinon_fail_step_id

  • [ @on_fail_step_id= ] fail_step_id
    Bu iş adım adım başarısız olursa yürütmek için Kimliğini ve fail_actionolan 4.fail_step_idİş int, varsayılan değer 0.

  • [ @ Server = ] 'server'
    Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez. server* *İş nvarchar(30), varsayılan değer null.

  • [ @ veritabanı_adı= ] 'database'
    yürütmek , veritabanının adını bir Transact-SQL adım.databaseİş sysname, varsayılan değer null, hangi durum ana veritabanı kullanılır. Ayraç ([]) içine adları izin verilmez.Bir ActiveX iş adım database komut dosyası kullanan dili adını, adım kullanır.

  • [ @ database_user_name= ] 'user'
    Çalıştırırken kullanılacak kullanıcı hesabının adını bir Transact-SQL adım.userİş sysname, varsayılan değer null.user , null, iş sahibinin kullanıcı bağlamında adım çalıştırır database.SQL Yalnızca SQL Server sysadmin iş sahibi ise, sunucu Aracısı Bu parametre içerir.Bu durumda, verilen Transact -SQL adım verilen SQL Server kullanıcı adı bağlamında yürütülür.iş sahibi, bir SQL Server sysadmin değil, sonra Transact -SQL adım her zaman bu işsahibi olan oturumu bağlamında yürütülür ve @ database_user_name parametre yoksayılacaktır.

  • [ @ retry_attempts= ] retry_attempts
    Yeniden deneme sayısı, bu adım başarısız olursa kullanmayı dener.retry_attemptsİş int, varsayılan değer 0, yeniden deneme yok karakteri çalışır.

  • [ @ yeniden_deneme_aralığı= ] retry_interval
    Yeniden denemeleri arasındaki dakika cinsinden saat miktarını.retry_intervalİş int, varsayılan değer 0, hangi gösterir bir 0-minute aralığı.

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

  • [ @ output_file_name= ] 'file_name'
    Bu adımı çıkışını kaydedildiği dosya adı.file_nameİş nvarchar(200), varsayılan değer null.file_namebir veya daha altında listelenen simgeleri içerebilir command.Bu parametre, yalnızca çalışan komutları ile geçerli Transact-SQL, CmdExec, PowerShell, Integration Services, veya Analysis Services alt sistemler.

  • [ @flags= ] flags
    Davranışını denetleyen bir seçenektir.flagsİş int, ve bu değerlerden biri olabilir.

    Değer

    Açıklama

    0 (varsayılan)

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

    2

    Çıktı dosyasına Ekle

    4

    Yaz Transact-SQLiş adım çıkış geçmişadım adım

    8

    tablo yazma günlük (varolan geçmişüzerine yaz)

    16

    tablo yazma günlük (append varolan geçmiş)

    32

    Tüm çıktı işgeçmişile yazma

    64

    Cmd jobstep sinyal olarak durdurmak için kullanılacak bir Windows olay oluşturma

  • [ @ proxy_id=] proxy_id
    Olarak iş adım çalıştırır proxy kimlik numarası.proxy_idtürü int, varsayılan değer null.Yok, proxy_id belirtilirse, hiçbir proxy_name belirtilen ve hiçbir user_name belirtilen, iş adım çalıştırır için hizmet hesabı olarak SQL Server Aracısı.

  • [ @ proxy_adı=] 'proxy_name'
    Olarak iş adım çalıştırır proxy adı.proxy_nametürü sysname, varsayılan değer null.Yok, proxy_id belirtilirse, hiçbir proxy_name belirtilen ve hiçbir user_name belirtilen, iş adım çalıştırır için hizmet hesabı olarak SQL Server Aracısı.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (başarısız)

Sonuç Kümeleri

Hiçbiri

Açıklamalar

sp_add_jobstep dan çalıştırılması gereken msdb veritabanı.

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.

iş adım oluşturan üye olduğu sürece iş adım proxy belirtmelisiniz sysadmin sabit güvenlik rolünün.

Bir proxy olarak tanımlanabilecek proxy_name veya proxy_id.

İzinler

Varsayılan olarak, üye sysadmin sabit sunucu rolü olabilir yürütmek bu saklı yordam.Diğer kullanıcıların aşağıdakilerden birini verilmelidir SQL Server Agent veritabanı rolleri sabit msdb veritabanı:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

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

iş adım oluşturan iş adım proxy erişimi olması gerekir.Üyeleri sysadmin sabit sunucu rolü sahip tüm proxy'leri erişim.Diğer kullanıcıların erişim için bir proxy açıklıkla verilmesi gerekir.

Örnekler

Aşağıdaki örnek, veritabanı erişimi için salt okunur değişiyor iş adımı oluşturur Sales veritabanı.Buna ek olarak, bu örnekte 5 yeniden deneme girişimi, bir 5 dakika bekleyin sonra sorun denemeler ile belirtir.

Not

Bu örnek varsayar Weekly Sales Data Backup iş zaten mevcut.

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