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


sp_add_job (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

Új feladatot hoz létre, amelyet az SQL Server Agent szolgáltatás hajt végre.

Transact-SQL szintaxis konvenciók

Fontos

Felügyelt Azure SQL-példányesetében a legtöbb, de jelenleg nem minden SQL Server Agent-funkció támogatott. Részletekért lásd Azure SQL Managed Instance T-SQL különbségeit az SQL Server-től .

Szemantika

sp_add_job
         [ @job_name = ] N'job_name'
     [ , [ @enabled = ] enabled ]
     [ , [ @description = ] N'description' ]
     [ , [ @start_step_id = ] step_id ]
     [ , [ @category_name = ] 'category' ]
     [ , [ @category_id = ] category_id ]
     [ , [ @owner_login_name = ] 'login' ]
     [ , [ @notify_level_eventlog = ] eventlog_level ]
     [ , [ @notify_level_email = ] email_level ]
     [ , [ @notify_level_netsend = ] netsend_level ]
     [ , [ @notify_level_page = ] page_level ]
     [ , [ @notify_email_operator_name = ] 'email_name' ]
     [ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
     [ , [ @notify_page_operator_name = ] 'page_name' ]
     [ , [ @delete_level = ] delete_level ]
     [ , [ @job_id = ] job_id OUTPUT ]
[ ; ]

Arguments

@job_name

A feladat neve. A névnek egyedinek kell lennie, és nem tartalmazhatja a százalékos (%) karaktert. @job_namenvarchar(128), alapértelmezett nélkül. Szükséges.

@enabled

Jelzi a hozzáadott munka állapotát. az engedélyezetttinyint, alapértelmezett 1 (engedélyezve). Ha 0, a feladat nincs engedélyezve, és nem fut az ütemezés szerint; viszont manuálisan is futtatható.

@description

A munka leírása. @descriptionnvarchar(512), alapértelmezett NULLérték . Ha @description kihagyják, N'No description available' akkor használják.

@start_step_id

Az első lépés azonosító száma, amit a feladathoz végrehajthatunk. @start_step_idint, alapértelmezés 1.

@category_name

A munka kategóriája. @category_name a sysname, alapértelmezett értékével.NULL

@category_id

Egy nyelvfüggetlen mechanizmus egy munkakategória meghatározására. @category_idint, alapértelmezés NULL.

@owner_login_name

A bejelentkezés neve, amely a munka tulajdonosa. @owner_login_name a sysname, alapértelmezettként NULL, ami a jelenlegi bejelentkezési névként értelmezhető. Csak a rendszergazdai fix szerver tagjai állíthatják be vagy módosíthatják az @owner_login_name értékét. Ha olyan felhasználók vannak, akik nem tagjai a rendszergazdálkodó szerepkészletnek, vagy megváltoztatják @owner_login_name értékét, a tárolt eljárás végrehajtása meghibásodik, és hiba jelenik meg.

@notify_level_eventlog

Egy érték, amely jelzi, mikor kell bejegyzést helyezni a Microsoft Windows alkalmazásnaplóba ehhez a feladathoz. @notify_level_eventlogint, és lehet az alábbi értékek:

Érték Description
0 Soha
1 Sikeres
2 (alapértelmezett) Hiba esetén
3 Mindig

@notify_level_email

Ez az érték jelzi, mikor kell e-mailt küldeni a munka befejezése után. @notify_level_emailint, alapértelmezett 0, ami azt jelzi, hogy soha. @notify_level_email ugyanazokat az értékeket használja, mint a @notify_level_eventlog.

@notify_level_netsend

Ez az érték jelzi, mikor kell hálózati üzenetet küldeni a munka befejezése után. @notify_level_netsendint, alapértelmezett 0, ami soha. @notify_level_netsend ugyanazokat az értékeket használja, mint a @notify_level_eventlog.

@notify_level_page

Ez az érték jelzi, mikor kell oldalt küldeni a munka befejezése után. @notify_level_pageint, alapértelmezett 0érték , ami azt jelzi, hogy soha. @notify_level_page ugyanazokat az értékeket használja, mint a @notify_level_eventlog.

@notify_email_operator_name

Az e-mail név, akinek e-mailt kell küldeni, amikor @notify_email_operator_name érik el az e-mailt. @notify_email_operator_name a sysname, alapértelmezettként NULL.

@notify_netsend_operator_name

Az operátor neve, akinek a hálózati üzenetet a munka befejezése után küldik. @notify_netsend_operator_name a sysname, alapértelmezés NULLszerint .

@notify_page_operator_name

Annak a személynek a nevét, akit a munka befejezése után fel kell hívni. @notify_page_operator_name a sysname, alapértelmezésként NULL.

@delete_level

Egy érték, ami jelzi, mikor kell törölni a feladatot. delete_valueint, alapértelmezés 0, ami azt jelenti, hogy soha. @delete_level ugyanazokat az értékeket használja, mint a @notify_level_eventlog.

Megjegyzés:

Ha @delete_level3, a feladatot csak egyszer hajtják végre, függetlenül attól, hogy bármilyen ütemezést definiálnak. Továbbá, ha egy munka önmagát törli, akkor az összes előzmény is törlődik.

@job_id KIMENET

A munkakör azonosító száma, ha sikeresen létrehozták. @job_id egy kimeneti változó, amelynek típusa uniqueidentifier, alapértelmezés .NULL

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Eredményhalmaz

Nincs.

Megjegyzések

@originating_server létezik , sp_add_jobde nincs felsorolva az Érvek alatt. @originating_server belső használatra van fenntartva.

Miután sp_add_job végrehajtották a feladat hozzáadásához, sp_add_jobstep használható lépések hozzáadására, amelyek végrehajtják a feladat tevékenységeit. sp_add_jobschedule használható az az SQL Server Agent szolgáltatás által használt menetrend létrehozására a feladat végrehajtásához.

Használd sp_add_jobserver az SQL Server instance beállítására, ahol a feladat végrehajtódik, és sp_delete_jobserver eltávolítod a feladatot az SQL Server instance-ból. Ha a feladat egy vagy több célszerveren fut le egy többszerveres környezetben, akkor a feladat célszervereinek vagy csoportjai beállítására használják sp_apply_job_to_targets . A célszerverekről vagy a célszervercsoportokról a feladatok eltávolításához használd sp_remove_job_from_targets. A Multi Server Administration (MSX/TSX) funkció nem támogatott az Azure SQL Managed Instance-on.

Az SQL Server Management Studio egyszerű, grafikus módot kínál a feladatok kezelésére, és ez a feladatinfrastruktúra létrehozásának és kezelésének ajánlott módja.

Ez a tárolt eljárás ugyanazt a nevet sp_add_job használja, amely hasonló objektumot használ az Azure SQL Database Azure Elastic Jobs szolgáltatásához. Az elastic jobs verzióról további információkért lásd jobs.sp_add_job (Azure Elastic Jobs) oldalt.

Permissions

Ezen az eljáráshoz engedélyeket adhatsz EXECUTE , de ezek az engedélyek felülbírálhatók egy SQL Server frissítés során.

Más felhasználóknak az alábbi SQL Server Agent rögzített adatbázis-szerepek egyikét kell megadniuk az msdb adatbázisban:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Ezeknek a szerepköröknek a jogosultságairól az SQL Server Agent Fixed Database Roles oldalon találja a részleteket.

Csak a rendszergazdai fix szerver tagjai állíthatják be vagy módosíthatják az @owner_login_name értékét. Ha olyan felhasználók vannak, akik nem tagjai a rendszergazdálkodó szerepkészletnek, vagy megváltoztatják @owner_login_name értékét, a tárolt eljárás végrehajtása meghibásodik, és hiba jelenik meg.

Példák

A. Feladat hozzáadása

Ez a példa egy új feladatot ad hozzá .NightlyBackups

USE msdb;
GO

EXECUTE dbo.sp_add_job @job_name = N'NightlyBackups';
GO

B. Adjon hozzá egy állást pagerrel, e-mailrel és netti küldési információval

Ez a példa létrehoz egy feladat nevű Ad hoc Sales Data Backup feladatot, amely François Ajenstat értesítést ad (pagerrel, e-mailrel vagy hálózati felugró üzenettel), ha a feladat sikertelenül megbukik, és sikeres teljesítés esetén törli a feladatot.

Megjegyzés:

Ez a példa feltételezi, hogy már létezik egy nevelt François Ajenstat operátor és egy login név françoisa .

USE msdb;
GO

EXECUTE dbo.sp_add_job
    @job_name = N'Ad hoc Sales Data Backup',
    @enabled = 1,
    @description = N'Ad hoc backup of sales data',
    @owner_login_name = N'françoisa',
    @notify_level_eventlog = 2,
    @notify_level_email = 2,
    @notify_level_netsend = 2,
    @notify_level_page = 2,
    @notify_email_operator_name = N'François Ajenstat',
    @notify_netsend_operator_name = N'François Ajenstat',
    @notify_page_operator_name = N'François Ajenstat',
    @delete_level = 1;
GO