sp_add_jobstep (Transact-sql)
Bir iş için bir adım (işlem) ekler.
Transact-SQL Sözdizim 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
Iş adım eklemek için kimlik numarası. job_idise uniqueidentifier, null varsayılan.@job_name ='job_name'
İş adım eklemek için adı. job_nameise sysname, null varsayılan.[!NOT]
Ya job_idya job_namebelirtilmesi gerekir, ancak her ikisi de belirtilemez.
**@step_id =*step_id
Iş adım dizisi kimlik numarası. Adım kimlik numaraları başında 1 ve boşluk olmayan artışı. Bir adımda varolan sırayla eklediyseniz, sıra numaraları otomatik olarak ayarlanır. Bir değer varsa sağlanan step_idbelirtilmemiş. step_id *ise int, null varsayılan.@step_name ='step_name'
Adım adı. step_nameise sysname, hiçbir varsayılan ile.@ alt ='subsystem'
Alt sistemi tarafından kullanılan SQL ServerAracısı hizmetini yürütmek için command. subsystemise nvarchar(40), ve bu değerlerden birini olabilir.Değer
Açıklama
'ACTIVESCRIPTING'
Etkin komut dosyası
ÖnemliBu ö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'
Işletim sistemi komut veya yürütülebilir program
'Dağıtım'
Dağıtım Aracısı iş çoğaltma
'Anında'
Anlık görüntü Aracısı iş çoğaltma
'logreader'
Günlük Okuma Aracısı iş çoğaltma
'Birleştirme'
Birleştirme Aracısı iş çoğaltma
'QueueReader'
Sıra Okuma Aracısı iş çoğaltma
'ANALYSISQUERY'
Analysis Services sorgu (mdx, dmx).
'ANALYSISCOMMAND'
Çözümleme Hizmetleri komutu (xmla).
'Dts'
Integration Servicespaketi yürütme
'PowerShell'
PowerShell komut dosyası
'tsql' (varsayılan)
Transact-SQLdeyimi
@command='command'
Tarafından yürütülecek komutların SQLServerAgent ile hizmet subsystem. commandise nvarchar(max), null varsayılan. SQL Server Agent yazılım programları yazarken değişkenleri sağlar aynı esnekliği sunan belirteç değiştirme sağlar.Önemli De SQL Server 2005Service Pack 1'de, SQL ServerAracısı iş adım belirteç sözdizimi değiştirildi. Sonucunda, bir çıkış makrosu şimdi iş adımda kullanılan tüm belirteçler bulunmalıdır, yoksa bu iş adımları başarısız olur. Üstelik, artık simge isimleri parantez içine alın ve gerekir dolar işareti koyun ($) belirteç sözdizimi başında. Örneğin:
$(ESCAPE_macro name(DATE))
Bu simgeleri ve simge yeni sözdizimini kullanmak için iş adımları güncelleştirme hakkında daha fazla bilgi için bkz: İş adımlar belirteçleri kullanma.
Güvenlik Notu Windows olay günlüğü üzerine yazma izinleriyle herhangi bir Windows kullanıcı tarafından aktif iş adımları erişebilirsiniz SQL ServerAgent uyarıları veya WMI uyarı. Bu bir güvenlik riski önlemek için SQL Servervarsayılan olarak devre dışı uyarıları tarafından aktive işlerde kullanılan Aracısı belirteçleri. These tokens are: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(property). Bu sürümde, belirteçlerini tüm uyardığınız için genişletilmiş unutmayın.
Bu belirteçler kullanmanız gerekiyorsa, öncelikle yalnızca Yöneticiler grubu gibi güvenilen Windows güvenlik gruplarının üyeleri bilgisayarın olay günlüğüne yazma izinleri olduğundan emin olun burada SQL Serveroturuyor. Sonra sağ SQL Server Agent nesne Gezgini'nde seçin özelliklerive Uyarı sistemi page, select için uyarılar tüm iş yanıtları belirteçleri Değiştir bu simgeleri etkinleştirmek için.
@ ek_değiştirgeler='parameters'
Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez. parametersise ntext, null varsayılan.**@ cmdexec_success_code =**code
Tarafından döndürülen değeri bir CmdExec belirtmek için alt komutu commandbaşarıyla çalıştırıldı. codeise int, varsayılan 0.**@on_success_action=**success_action
Adım başarılı olursa gerçekleştirilecek eylemi. success_actionise tinyint, ve bu değerlerden birini 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 geçinon_success_step_id
**@ on_success_step_id =**success_step_id
Bu iş adım adım başarılı olursa yürütme Kımlığı ve success_action olan 4. success_step_idise int, varsayılan 0.**@on_fail_action=**fail_action
Adım başarısız olursa gerçekleştirilecek eylemi. fail_actionise tinyint, ve bu değerlerden birini 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 geçinon_fail_step_id
**@on_fail_step_id=**fail_step_id
Bu iş adım adım başarısız olursa yürütme Kımlığı ve fail_action olan 4. fail_step_idise int, varsayılan 0.@server ='server'
Yalnızca bilgi amaçlı olarak belirtilmiştir. Desteklenmez. Gelecekteki uyumluluk garanti edilmez. server* *ise nvarchar(30), null varsayılan.@database_name='database'
Yürütmek veritabanı adı bir Transact-SQLadım. databaseise sysname, null varsayılan hangi durumda ana veritabanı kullanılır. Parantezler ([]) içine adları izin verilmez. Bir ActiveX iş adım databaseadım kullandığı komut dosyası dili adını.@ database_user_name='user'
Yürütürken kullanılacak kullanıcı hesabı adı bir Transact-SQLadım. userise sysname, null varsayılan. Ne zaman usernull, iş sahibinin kullanıcı bağlamında adım çalıştırır üzerinde database. SQL Server Agent iş sahibi bir SQL Server sysadmin ise bu parametre içerir. Eğer öyleyse, verilen Transact-sql adım verilen SQL Server kullanıcı adı bağlamında yürütülür. İş sahibi bir SQL Server sysadmin değil, sonra Transact-sql adım her zaman bu işin sahibi oturumu bağlamında yürütülür ve @ database_user_name parametre yoksayılır.**@retry_attempts=**retry_attempts
Yeniden deneme sayısı, bu adım başarısız olursa kullanmayı dener. retry_attemptsise int, varsayılan 0, hangi yeniden deneme yok gösterir çalışır.**@retry_interval=**retry_interval
Yeniden denemeler arasındaki dakika cinsinden süre miktarını. retry_intervalise int, varsayılan 0, hangi gösterir bir 0-dakika aralığı.**@ os_run_priority =**run_priority
Aittir.@output_file_name='file_name'
Bu adım çıkış kaydedildiği dosyanın adı. file_name* *ise nvarchar(200), null varsayılan. file_namebir veya daha fazlasını altında listelenen simgeleri içerebilir command. Bu parametre, yalnızca çalışan komutları ile geçerli Transact-SQL, CmdExec, PowerShell, Integration Services, ya Analysis Servicesalt sistemlerin.**@flags=**flags
Davranışını denetleyen bir seçenektir. flagsise 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ış tarihi adım
8
Tabloya yazma günlük (varolan geçmişi üzerine yaz)
16
Tabloya yazma günlük (append varolan geçmişi)
32
Tüm çıktı iş Tarih yazmak
64
İptal etmek için Cmd jobstep bir sinyal olarak 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, null varsayılan. Yok eğer proxy_idbelirtilen hiçbir proxy_namebelirtilen ve hiçbir user_namebelirtilirse, hizmet hesabı olarak iş adım çalıştırır SQL Serverajan.@ proxy_name =] 'proxy_name'
Olarak iş adım çalıştırır proxy adı. proxy_nametürü sysname, null varsayılan. Yok eğer proxy_idbelirtilen hiçbir proxy_namebelirtilen ve hiçbir user_namebelirtilirse, hizmet hesabı olarak iş adım çalıştırır SQL Serverajan.
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (hata)
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 bir üyesi olmadıkça iş adım proxy belirtmelisiniz sysadmin sabit güvenlik rolünün.
Proxy tarafından tanımlanan proxy_nameya proxy_id.
İzinler
Varsayılan olarak, üye sysadmin sabit sunucu rolü bu saklı yordam yürütebilirsiniz. Diğer kullanıcıların aşağıdakilerden birini verilmesi gereken SQL ServerAgent veritabanı rolleri sabit msdb veritabanı:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Bu rolleri izinleri 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ü tüm proxy'leri erişimi vardır. Diğer kullanıcıların erişim için bir proxy açıklıkla verilmesi gerekir.
Örnekler
Salt okunur veritabanı erişimi değişiklikler iş adım aşağıdaki örnek oluşturur Salesveritabanı. Ayrıca, bu örnek 5 yeniden deneme girişimleri, bir 5 dakika sonra sorun her deneme ile belirtir.
[!NOT]
Bu örnek varsayar Weekly Sales Data Backupişi 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
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
Ayrıca bkz.
Başvuru
sp_add_schedule (Transact-sql)
sp_delete_jobstep (Transact-sql)
sp_help_jobstepmsdb (Transact-sql)
sp_update_jobstep (Transact-sql)
Sistem saklı yordamları (Transact-sql)