Megosztás a következőn keresztül:


sp_update_jobstep (Transact-SQL)

A következőkre vonatkozik:SQL ServerFelügyelt Azure SQL-példány

Módosítja az SQL Server Agent szolgáltatásban automatizált tevékenységek végrehajtására használt feladatok egyik lépésének beállítását.

Transact-SQL szintaxis konvenciói

Szintaxis

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

Érvek

[ @job_id = ] 'job_id'

Annak a feladatnak az azonosítószáma, amelyhez a lépés tartozik. @job_iduniqueidentifier, alapértelmezett értéke NULL.

Meg kell adni @job_id vagy @job_name, de mindkettőt nem lehet megadni.

[ @job_name = ] N'job_name'

Annak a feladatnak a neve, amelyhez a lépés tartozik. @job_name a sysname, alapértelmezés szerint .

Meg kell adni @job_id vagy @job_name, de mindkettőt nem lehet megadni.

[ @step_id = ] step_id

A módosítani kívánt feladatlépés azonosítószáma. @step_id alapértelmezés nélkül int. Ez a szám nem módosítható.

[ @step_name = ] N'step_name'

A lépés új neve. @step_name a sysname, alapértelmezés szerint .

[ @subsystem = ] N'alrendszer"

Az SQL Server Agent által a @commandvégrehajtásához használt alrendszer. @subsystemnvarchar(40), alapértelmezett értéke NULL.

[ @command = ] N'parancs'

A @subsystemkeresztül végrehajtandó parancsok. @commandnvarchar(max), alapértelmezett értéke NULL.

[ @additional_parameters = ] N'additional_parameters'

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.

[ @cmdexec_success_code = ] cmdexec_success_code

Egy CmdExec alrendszerparancs által visszaadott érték, amely jelzi, hogy parancs sikeresen végrehajtotta. @cmdexec_success_codeint, alapértelmezett értéke NULL.

[ @on_success_action = ] on_success_action

A lépés sikeres végrehajtása esetén végrehajtandó művelet. @on_success_actionNULL, és ezek egyike lehet.

Érték Leírás (művelet)
1 Kilépés sikerrel
2 Kilépés hibával
3 Ugrás a következő lépésre
4 Ugrás a @on_success_step_id lépésre

[ @on_success_step_id = ] on_success_step_id

A feladatban szereplő lépés azonosítószáma, ha a lépés sikeres, és @on_success_action4. @on_success_step_idint, alapértelmezett értéke NULL.

[ @on_fail_action = ] on_fail_action

A lépés meghiúsulása esetén végrehajtandó művelet. @on_fail_actionapró, és ezek egyike is lehet.

Érték Leírás (művelet)
1 Kilépés sikerrel
2 Kilépés hibával
3 Ugrás a következő lépésre
4 Ugrás a @on_fail_step_id lépésre

[ @on_fail_step_id = ] on_fail_step_id

A feladatban végrehajtandó lépés azonosítószáma, ha a lépés meghiúsul, és @on_fail_action4. @on_fail_step_idint, alapértelmezett értéke NULL.

[ @server = ] N'kiszolgáló'

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.

[ @database_name = ] N'database_name'

Annak az adatbázisnak a neve, amelyben egy Transact-SQL lépést végre szeretne hajtani. @database_name a sysnamealapértelmezett . A zárójelekben ([]) lévő nevek nem engedélyezettek.

[ @database_user_name = ] N'database_user_name'

A Transact-SQL lépés végrehajtásakor használni kívánt adatbázis-felhasználó neve. @database_user_name a sysnamealapértelmezett .

[ @retry_attempts = ] retry_attempts

Az újrapróbálkozási kísérletek száma, ha ez a lépés sikertelen. @retry_attemptsint, alapértelmezett értéke NULL.

[ @retry_interval = ] retry_interval

Az újrapróbálkozási kísérletek közötti percek száma. @retry_intervalint, alapértelmezett értéke NULL.

[ @os_run_priority = ] os_run_priority

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.

[ @output_file_name = ] N'output_file_name'

Annak a fájlnak a neve, amelyben a lépés kimenete mentésre kerül. @output_file_namenvarchar(200), alapértelmezett értéke NULL. Ez a paraméter csak Transact-SQL vagy CmdExec alrendszerekben futó parancsokkal érvényes.

Ha @output_file_name vissza szeretné állítani NULL, @output_file_name üres sztringre vagy üres karaktersorozatra kell állítania, de nem használhatja a CHAR(32) függvényt.

Állítsa be például ezt az argumentumot üres sztringre az alábbiak szerint:

@output_file_name = ' '

[ @flags = ] jelzők

A viselkedést vezérlő beállítás. @flagsint, alapértelmezett értéke NULL.

Érték Leírás Megjegyzés
0 (alapértelmezett) Kimeneti fájl felülírása
2 Hozzáfűzés a kimeneti fájlhoz
4 Transact-SQL feladatlépés kimenetének írása a lépéselőzményekbe Alkalmazás típusra: Transact-SQL, Analysis Services Command és Analysis Query
8 Napló írása a táblába (meglévő előzmények felülírása)
16 Napló írása táblába (meglévő előzmények hozzáfűzése)
32 SSIS/CmdExe/PowerShell-feladatlépés kimenetének írása lépéselőzményekhez Alkalmazás a következő típusra: CmdExe, PowerShell és Integration Services-csomag

[ @proxy_id = ] proxy_id

Annak a proxynak az azonosítószáma, amelyként a feladatlépés fut. @proxy_idint, alapértelmezett értéke NULL. Ha nincs megadva @proxy_id, nincs megadva @proxy_name, és nincs megadva @database_user_name, a feladatlépés az SQL Server Agent szolgáltatásfiókjaként fut.

[ @proxy_name = ] N'proxy_name'

Annak a proxynak a neve, amelyként a feladatlépés fut. @proxy_namesysname, alapértelmezett értéke NULL. Ha nincs megadva @proxy_id, nincs megadva @proxy_name, és nincs megadva @database_user_name, a feladatlépés az SQL Server Agent szolgáltatásfiókjaként fut.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Megjegyzések

sp_update_jobstep a msdb adatbázisból kell futtatni.

A feladatlépések frissítése növeli a feladat verziószámát.

Ez a tárolt eljárás megosztja a nevét egy hasonló objektummal az Azure SQL DatabaseAzure Elastic Jobs szolgáltatáshoz. További információ a rugalmas feladatok verziójáról: jobs.sp_update_jobstep (Azure Elastic Jobs).

Engedélyek

Ehhez az eljáráshoz EXECUTE engedélyeket adhat meg, de előfordulhat, hogy ezek az engedélyek felül lesznek bírálva egy SQL Server-frissítés során.

A többi felhasználónak az alábbi SQL Server Agent rögzített adatbázis-szerepkörök egyikét kell biztosítani a msdb adatbázisban:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

A szerepkörök engedélyeivel kapcsolatos részletekért lásd SQL Server-ügynök rögzített adatbázis-szerepköreit.

Csak a sysadmin tagjai frissíthetik egy másik felhasználó által birtokolt feladat feladatlépését.

Ha a feladatlépés proxyhoz való hozzáférést igényel, a feladatlépés létrehozójának hozzáféréssel kell rendelkeznie a feladatlépés proxyhoz. A Transact-SQL kivételével minden alrendszerhez proxyfiók szükséges. A sysadmin tagjai minden proxyhoz hozzáférnek, és használhatják az SQL Server Agent szolgáltatásfiókot a proxyhoz.

Példák

Az alábbi példa a Weekly Sales Data Backup feladat első lépéséhez tartozó újrapróbálkozási kísérletek számát módosítja. A példa futtatása után az újrapróbálkozási kísérletek száma 10.

USE msdb;
GO

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