Sdílet prostřednictvím


sp_add_job (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Vytváří novou úlohu vykonávanou službou SQL Server Agent.

Transact-SQL konvence syntaxe

Důležité

Na Azure SQL Managed Instance, většina, ale ne všechny funkce agenta SQL Serveru jsou aktuálně podporované. Podrobnosti viz Azure SQL Managed Instance T-SQL oproti SQL Serveru .

Syntaxe

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

Název úlohy. Název musí být jedinečný a nesmí obsahovat procento znaku (%). @job_name je nvarchar(128), bez výchozího nastavení. Povinné.

@enabled

Ukazuje stav přidané práce. Povoleno je tinyint, s výchozím nastavením 1 (povoleno). Pokud 0, úloha není povolena a neběží podle svého plánu; nicméně ji lze spustit ručně.

@description

Popis práce. @description je nvarchar(512), s výchozím hodnotou NULL. Pokud @description vynechán, používá se. N'No description available'

@start_step_id

Identifikační číslo prvního kroku k provedení pro danou práci. @start_step_id je int, s výchozím nastavením 1.

@category_name

Kategorie pro danou práci. @category_name je sysname, s výchozím nastavením NULL.

@category_id

Jazykově nezávislý mechanismus pro určení kategorie práce. @category_id je int, s výchozím nastavením NULL.

@owner_login_name

Název přihlašovacího data, který vlastní práci. @owner_login_name je sysname, s výchozím , NULLcož je interpretováno jako aktuální přihlašovací jméno. Pouze členové role pevného správce systému mohou nastavit nebo měnit hodnotu pro @owner_login_name. Pokud uživatelé, kteří nejsou členy role správce systému , nastaví nebo změní hodnotu @owner_login_name, vykonání této uložené procedury selže a vrátí se chyba.

@notify_level_eventlog

Hodnota indikující, kdy vložit položku do logu aplikace Microsoft Windows pro tuto úlohu. @notify_level_eventlog je int a může být jednou z těchto hodnot:

Hodnota Description
0 Nikdy
1 Při úspěchu
2 (výchozí) Při selhání
3 Always

@notify_level_email

Hodnota, která ukazuje, kdy poslat e-mail po dokončení této práce. @notify_level_email je int, s výchozím , 0což znamená nikdy. @notify_level_email používá stejné hodnoty jako @notify_level_eventlog.

@notify_level_netsend

Hodnota, která indikuje, kdy odeslat síťovou zprávu po dokončení této úlohy. @notify_level_netsend je int, s výchozím , 0což znamená nikdy. @notify_level_netsend používá stejné hodnoty jako @notify_level_eventlog.

@notify_level_page

Hodnota, která ukazuje, kdy po dokončení této práce odeslat stránku. @notify_level_page je int, s výchozím , 0což znamená nikdy. @notify_level_page používá stejné hodnoty jako @notify_level_eventlog.

@notify_email_operator_name

E-mailové jméno osoby, které je třeba e-mail poslat, když @notify_email_operator_name zastihnete. @notify_email_operator_name je sysname s výchozím nastavením NULL.

@notify_netsend_operator_name

Jméno operátora, kterému je síťová zpráva po dokončení této práce odeslána. @notify_netsend_operator_name je sysname s výchozím nastavením NULL.

@notify_page_operator_name

Jméno osoby, kterou lze po dokončení této práce vypovědět. @notify_page_operator_name je sysname s výchozím nastavením NULL.

@delete_level

Hodnota, která ukazuje, kdy úkol smazat. delete_value je int, s výchozím , 0což znamená nikdy. @delete_level používá stejné hodnoty jako @notify_level_eventlog.

Poznámka:

Pokud @delete_level je 3, je úkol vykonán pouze jednou, bez ohledu na jakékoli plány definované pro danou úlohu. Navíc, pokud se práce sama smaže, je smazána i veškerá historie této práce.

výstup @job_id

Identifikační číslo práce přiřazené pracovní pozici, pokud bylo úspěšně vytvořeno. @job_id je výstupní proměnná typu uniqueidentifier, s výchozím NULLnastavením .

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

@originating_server existuje v sp_add_job, ale není uveden v sekci Argumenty. @originating_server je vyhrazeno pro interní použití.

Po sp_add_job provedení pro přidání úkolu lze použít k přidání kroků, sp_add_jobstep které provádějí dané úkoly. sp_add_jobschedule lze použít k vytvoření harmonogramu, který služba SQL Server Agent používá k vykonání úlohy.

Použijte sp_add_jobserver k nastavení instance SQL Serveru, kde se úloha spouští, a sp_delete_jobserver k odstranění úlohy z instance SQL Serveru. Pokud se úloha spouští na jednom nebo více cílových serverech v multiserverovém prostředí, použijte sp_apply_job_to_targets k nastavení cílových serverů nebo skupin cílových serverů pro danou úlohu. Pro odstranění úloh z cílových serverů nebo skupin serverů použijte sp_remove_job_from_targets. Funkce Multi Server Administration (MSX/TSX) není v Azure SQL Managed Instance podporována.

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.

Tato uložená procedura sdílí název s sp_add_job podobným objektem pro službu Azure Elastic Jobs pro Azure SQL Database. Pro informace o verzi elastic jobs viz jobs.sp_add_job (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.

Pouze členové role pevného správce systému mohou nastavit nebo měnit hodnotu pro @owner_login_name. Pokud uživatelé, kteří nejsou členy role správce systému , nastaví nebo změní hodnotu @owner_login_name, vykonání této uložené procedury selže a vrátí se chyba.

Examples

A. Přidejte si práci

Tento příklad přidává novou roli s názvem NightlyBackups.

USE msdb;
GO

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

B. Přidejte práci pomocí pageru, e-mailu a online odesílání informací

Tento příklad vytváří úkol s názvem Ad hoc Sales Data Backup úkol, který upozorní François Ajenstat (pagerem, e-mailem nebo síťovým vyskakovacím oknem), pokud úkol selže, a po úspěšném dokončení úkol smaže.

Poznámka:

Tento příklad předpokládá, že již existují pojmenovaný operátor François Ajenstat a přihlašovací jméno 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