Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Přidává krok (operaci) do role SQL Server Agenta.
Důležité
Na Azure SQL Managed Instance je podporována většina, ale ne všechny typy pracovních pozic SQL Server Agent. Podrobnosti viz Azure SQL Managed Instance T-SQL oproti SQL Serveru .
Syntaxe
sp_add_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' ]
[ , [ @step_uid = ] 'step_uid' OUTPUT ]
[ ; ]
Arguments
[ @job_id = ] 'job_id'
Identifikační číslo práce, ke které přidat krok.
@job_id je uniqueidentifier, s výchozím nastavením NULL.
Buď @job_id , nebo @job_name musí být specifikovány, ale ani jedno nelze specifikovat.
[ @job_name = ] N'job_name'
Název práce, ke které přidat krok.
@job_name je sysname s výchozím nastavením NULL.
Buď @job_id , nebo @job_name musí být specifikovány, ale ani jedno nelze specifikovat.
[ @step_id = ] step_id
Sekvenční identifikační číslo pro krok práce.
@step_id je int, s výchozím nastavením NULL. Identifikační čísla začínají a 1 postupně se zvyšují bez mezer. Pokud je do existující sekvence vložen krok, pořadová čísla se automaticky upraví. Pokud není uvedena @step_id hodnota.
[ @step_name = ] N'step_name'
Název schodu. @step_name je sysname, bez výchozího nastavení.
[ @subsystem = ] N'subsystém'
Subsystém používaný službou SQL Server Agent k provádění @command. @subsystem je nvarchar(40) a může být jednou z těchto hodnot.
| Hodnota | Description |
|---|---|
ActiveScripting |
Aktivní skript Důležitý: Tato funkce bude v budoucí verzi SQL Serveru odstraněna. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. |
CmdExec |
Příkaz operačního systému nebo spustitelný program |
Distribution |
Úloha agenta replikace distribuce |
Snapshot |
Role agenta pro replikační snímky |
LogReader |
Úloha Replication Log Reader Agent |
Merge |
Úloha agenta pro replikaci |
QueueReader |
Úloha Replikačního frontového čtecího agenta |
ANALYSISQUERY |
Dotaz Analysis Services (MDX, DMX) |
ANALYSISCOMMAND |
Příkaz Analysis Services (XMLA) |
SSIS |
Spouštění balíčků integračních služeb |
PowerShell |
PowerShell Script |
TSQL (výchozí) |
Transact-SQL prohlášení |
[ @command = ] N'command'
Příkazy mají být vykonány službou SQL Server Agent prostřednictvím @subsystem.
@command je nvarchar(max), s výchozím hodnotou NULL. SQL Server Agent poskytuje substituci tokenů, což vám dává stejnou flexibilitu, jakou poskytují proměnné při psaní softwarových programů.
Escape makro musí doprovázet všechny tokeny použité v pracovních krocích, jinak tyto kroky selžou. Navíc musíte nyní uzavřít názvy tokenů do závorek a na začátek syntaxe tokenu umístit znak dolaru ($). Například: $(ESCAPE_<macro name>(DATE)).
Pro více informací o těchto tokenech a aktualizaci vašich pracovních kroků pro použití nové syntaxe tokenů viz Použít tokeny v Pracovních krocích.
Každý uživatel Windows s oprávněním zápisu do Windows Event Log může přistupovat k krokům úlohy, které jsou aktivovány upozorněními SQL Server Agent nebo WMI upozorněními. Aby se tomuto bezpečnostnímu riziku předešlo, jsou SQL Server Agent tokeny, které lze použít v úlohách aktivovaných upozorněními, ve výchozím nastavení zakázány. Tyto tokeny jsou: A-DBN, A-SVR, A-ERR, A-SEV, , A-MSGa .WMI(<property>) V tomto vydání je používání tokenů rozšířeno na všechna upozornění.
Pokud potřebujete tyto tokeny použít, nejprve se ujistěte, že pouze členové důvěryhodných bezpečnostních skupin Windows, jako je skupina Administrátorů, mají oprávnění k zápisu do Event Logu počítače, kde SQL Server sídlí. Poté klikněte pravým tlačítkem na SQL Server Agent v Průzkumníku objektů, vyberte Vlastnosti a na stránce Systém upozornění vyberte Nahrazení tokenů pro všechny odpovědi na úlohy na upozornění, abyste tyto tokeny povolili.
[ @additional_parameters = ] N'additional_parameters'
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
[ @cmdexec_success_code = ] cmdexec_success_code
Hodnota vrácená CmdExec příkazem podsystému, která označuje, že @command úspěšně vykonána.
@cmdexec_success_code je int, s výchozím nastavením 0.
[ @on_success_action = ] on_success_action
Akce, kterou je třeba provést, pokud krok uspěje. @on_success_action je tinyint a může být jednou z těchto hodnot.
| Hodnota | Popis (akce) |
|---|---|
1 (výchozí) |
Úspěšně přestaňte |
2 |
Přestaňte s neúspěchem |
3 |
Přejděte na další krok |
4 |
Přejděte na krok @on_success_step_id |
[ @on_success_step_id = ] on_success_step_id
ID kroku v této úlohě, pokud krok uspěje, a @on_success_action je 4.
@on_success_step_id je int, s výchozím nastavením 0.
[ @on_fail_action = ] on_fail_action
Akce, kterou je třeba provést, pokud krok selže. @on_fail_action je tinyint a může být jednou z těchto hodnot.
| Hodnota | Popis (akce) |
|---|---|
1 |
Úspěšně přestaňte |
2 (výchozí) |
Přestaňte s neúspěchem |
3 |
Přejděte na další krok |
4 |
Přejděte na krok @on_fail_step_id |
[ @on_fail_step_id = ] on_fail_step_id
ID kroku v této úlohě, která se vykoná, pokud krok selže a @on_fail_action, je .4
@on_fail_step_id je int, s výchozím hodnotou 0.
[ @server = ] N' server'
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
[ @database_name = ] N'database_name'
Název databáze, ve které se provádí Transact-SQL krok.
@database_name je sysname, s výchozím nastavením NULL, v takovém případě se databáze master používá. Jména uzavřená v závorkách ([]) nejsou povolena. Pro krok práce v ActiveX je @database_name název skriptovacího jazyka, který tento krok používá.
[ @database_user_name = ] N'database_user_name'
Název uživatelského účtu, který se používá při provádění Transact-SQL kroku.
@database_user_name je sysname, s výchozím nastavením NULL. Když @database_user_name je NULL, krok běží v uživatelském kontextu vlastníka práce na @database_name. SQL Server Agent zahrnuje tento parametr pouze tehdy, pokud je vlastníkem úlohy správce SQL Serveru. Pokud ano, daný Transact-SQL krok se vykoná v kontextu daného uživatelského jména SQL Serveru. Pokud vlastník práce není správce SQL Serveru, pak se Transact-SQL krok vždy vykoná v kontextu přihlášení, které tuto práci vlastní, a parametr @database_user_name se ignoruje.
[ @retry_attempts = ] retry_attempts
Počet pokusů o opakování, pokud tento krok selže.
@retry_attempts je int, s výchozím , 0což znamená, že se nepokusí o opakování.
[ @retry_interval = ] retry_interval
Čas mezi opakovanými pokusy v minutách.
@retry_interval je int, s výchozím , 0což označuje 0interval -minut.
[ @os_run_priority = ] os_run_priority
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
[ @output_file_name = ] N'output_file_name'
Název souboru, do kterého je výstup tohoto kroku uložen.
@output_file_name je nvarchar(200), s výchozím hodnotou NULL.
@output_file_name může zahrnovat jeden nebo více tokenů uvedených pod @command. Tento parametr je platný pouze u příkazů běžících na subsystémech Transact-SQL, CmdExec, PowerShellIntegration Services nebo Analysis Services.
[ @flags = ] vlajky
Možnost, která řídí chování. @flags je int a může být jednou z těchto hodnot.
| Hodnota | Description |
|---|---|
0 (výchozí) |
Přepisovat výstupní soubor |
2 |
Přidat do výstupního souboru |
4 |
Napište Transact-SQL historii postupů práce po jednotlivých krocích |
8 |
Zápis log do tabulky (přepsání existující historie) |
16 |
Zápis log do tabulky (připojit k existující historii) |
32 |
Zapište veškerý výstup do historie práce |
64 |
Vytvořte Windows událost, která slouží jako signál pro ukončení kroku cmd práce |
[ @proxy_id = ] proxy_id
ID číslo proxy, podle kterého krok práce běží.
@proxy_id je int, s výchozím nastavením NULL. Pokud není specifikován žádný @proxy_id , @proxy_name není specifikován ani @database_user_name , krok práce běží jako servisní účet SQL Server Agent.
[ @proxy_name = ] N'proxy_name'
Název proxy, pod kterým krok práce běží.
@proxy_name je sysname s výchozím nastavením NULL. Pokud není specifikován žádný @proxy_id , @proxy_name není specifikován ani @database_user_name , krok práce běží jako servisní účet SQL Server Agent.
[ @step_uid = ] VÝSTUP 'step_uid'
@step_uid je parametr OUTPUT typu uniqueidentifier.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Sada výsledků
Žádné.
Poznámky
sp_add_jobstep musí být spuštěna z databáze msdb .
SQL Server Management Studio poskytuje snadný, grafický způsob správy úloh a je doporučený způsob, jak vytvořit a spravovat infrastrukturu úloh.
Ve výchozím nastavení běží krok práce jako servisní účet SQL Server Agent, pokud není specifikován jiný proxy. Požadavkem tohoto účtu je být členem fixní bezpečnostní role správce systému .
Zástupce může být identifikován @proxy_name nebo @proxy_id.
Tato uložená procedura sdílí název s sp_add_jobstep podobným objektem pro službu Azure Elastic Jobs pro Azure SQL Database. Informace o verzi elastic jobs najdete v jobs.sp_add_jobstep (Azure Elastic Jobs).
Povolení
Na tomto postupu můžete udělit EXECUTE oprávnění, ale tato oprávnění mohou být během upgradu SQL Serveru přepsána.
Ostatní uživatelé musí mít v databázi msdb přiděleny některé z následujících pevných databázových rolí SQL Server Agent:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Podrobnosti o oprávněních těchto rolí naleznete v SQL Server Agent Fixed Database Roles.
Tvůrce pracovního kroku musí mít přístup k proxy pro tento pracovní krok. Členové role pevného správce mají přístup ke všem proxy. Ostatní uživatelé musí mít explicitně povolený přístup k proxy.
Examples
Následující příklad vytváří krok práce, který mění přístup k databázi Sales na pouze pro čtení. Navíc tento příklad specifikuje pět pokusů o opakování, přičemž každé opakování proběhne po pětiminutovém čekání.
Poznámka:
Tento příklad předpokládá, že Weekly Sales Data Backup práce již existuje.
USE msdb;
GO
EXECUTE 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
Související obsah
- Zobrazit nebo upravit pracovní pozice
- sp_add_job (Transact-SQL)
- sp_add_schedule (Transact-SQL)
- sp_delete_jobstep (Transact-SQL)
- sp_help_job (Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_jobstep (Transact-SQL)
- uložené procedury systému (Transact-SQL)