Udostępnij za pomocą


sp_add_job (Transact-SQL)

Dotyczy:SQL ServerAzure SQL Managed Instance

Tworzy nowe zadanie wykonywane przez usługę SQL Server Agent.

Transact-SQL konwencje składni

Ważne

Na platformie Azure SQL Managed Instance obecnie obsługiwana jest większość funkcji agenta programu SQL Server, ale nie wszystkie. Zobacz różnice Azure SQL Managed Instance T-SQL w porównaniu do SQL Server dla szczegółów.

Składnia

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

Nazwa zadania. Nazwa musi być unikalna i nie może zawierać znaku procentowego (%). @job_name to nvarchar(128), bez domyślnego statusu. To jest wymagane.

@enabled

Wskazuje status dodanego zadania. Włączony jest TinyInt, z domyślnym ( 1 włączony). Jeśli 0, zadanie nie jest włączone i nie wykonuje się zgodnie ze swoim harmonogramem; jednak można je uruchomić ręcznie.

@description

Opis pracy. @description to nvarchar(512), z domyślnym obciążeniem NULL. Jeśli @description zostanie pominięte, jest używane. N'No description available'

@start_step_id

Numer identyfikacyjny pierwszego kroku do wykonania zadania. @start_step_id jest int, z domyślnym .1

@category_name

Kategoria dla pracy. @category_name jest nazwą systemu z domyślnym .NULL

@category_id

Niezależny od języka mechanizm określania kategorii stanowiska. @category_id jest int, z domyślnym obciążeniem NULL.

@owner_login_name

Nazwa login-a, który jest właścicielem tej pracy. @owner_login_name to nazwa sysname, z domyślnym , NULLco jest interpretowane jako aktualna nazwa logowania. Tylko członkowie roli stałego serwera administratora systemu mogą ustawiać lub zmieniać wartość @owner_login_name. Jeśli użytkownicy spoza roli administratora systemu ustawią lub zmienią wartość @owner_login_name, wykonanie tej procedury przechowywanej nie ulega awarii i pojawia się błąd.

@notify_level_eventlog

Wartość wskazująca, kiedy umieścić wpis w dzienniku aplikacji Microsoft Windows dla tego zadania. @notify_level_eventlog to int i może być jedną z tych wartości:

Wartość Description
0 Nigdy
1 Po pomyślnych działaniach
2 (ustawienie domyślne) Po awarii
3 Zawsze

@notify_level_email

Wartość wskazująca, kiedy wysłać e-mail po zakończeniu tej pracy. @notify_level_email jest int, z domyślnym , 0co oznacza nigdy. @notify_level_email używa tych samych wartości co @notify_level_eventlog.

@notify_level_netsend

Wartość wskazująca, kiedy wysłać wiadomość sieciową po zakończeniu tego zadania. @notify_level_netsend jest int, z domyślnym , 0co oznacza nigdy. @notify_level_netsend używa tych samych wartości co @notify_level_eventlog.

@notify_level_page

Wartość wskazująca, kiedy wysłać stronę po zakończeniu tego zadania. @notify_level_page jest int, z domyślnym , 0co oznacza nigdy. @notify_level_page używa tych samych wartości co @notify_level_eventlog.

@notify_email_operator_name

Imię i nazwisko e-mail osoby, do której należy wysłać e-mail, gdy @notify_email_operator_name zostanie osiągnięty. @notify_email_operator_name to nazwa systemu, z domyślnym .NULL

@notify_netsend_operator_name

Imię i nazwisko operatora, do którego wiadomość sieciowa jest wysyłana po zakończeniu tego zadania. @notify_netsend_operator_name to nazwa systemu, z domyślnym .NULL

@notify_page_operator_name

Imię i nazwisko osoby, którą można wezwać po zakończeniu tej pracy. @notify_page_operator_name to nazwa systemu, z domyślnym .NULL

@delete_level

Wartość wskazująca, kiedy usunąć zadanie. delete_value jest int, z domyślnym , 0co oznacza nigdy. @delete_level używa tych samych wartości co @notify_level_eventlog.

Uwaga / Notatka

Gdy @delete_level jest , 3zadanie jest wykonywane tylko raz, niezależnie od zdefiniowanych harmonogramów dla zadania. Co więcej, jeśli zadanie samo się usunie, cała historia tego zadania również zostaje usunięta.

dane wyjściowe @job_id

Numer identyfikacyjny pracy przypisany do zadania, jeśli zostanie pomyślnie utworzony. @job_id jest zmienną wyjściową typu uniqueidentifier, z domyślną wartością NULL.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

Żaden.

Uwagi

@originating_server istnieje w sp_add_job, ale nie jest wymieniona w sekcji Argumenty. @originating_server jest zarezerwowany do użytku wewnętrznego.

Po sp_add_job wykonaniu zadania sp_add_jobstep można go użyć do dodania kroków wykonujących działania w danym zadaniu. sp_add_jobschedule może być użyte do stworzenia harmonogramu, którego usługa SQL Server Agent wykorzystuje do wykonania zadania.

Użyj do sp_add_jobserver ustawienia instancji SQL Server w miejscu wykonywania zadania oraz sp_delete_jobserver do usunięcia zadania z instancji SQL Server. Jeśli zadanie działa na jednym lub kilku docelowych serwerach w środowisku wieloserwerowym, użyj do sp_apply_job_to_targets ustawienia docelowych serwerów lub grup docelowych dla zadania. Aby usunąć zadania z docelowych serwerów lub grup docelowych, użyj sp_remove_job_from_targets. Funkcja Multi Server Administration (MSX/TSX) nie jest obsługiwana w Azure SQL Managed Instance.

Program SQL Server Management Studio zapewnia łatwy, graficzny sposób zarządzania zadaniami i jest zalecanym sposobem tworzenia infrastruktury zadań i zarządzania nią.

Ta procedura przechowywana dzieli nazwę z podobnym sp_add_job obiektem dla usługi Azure Elastic Jobs dla Azure SQL Database. Aby uzyskać informacje o wersji zadań elastycznych, zobacz jobs.sp_add_job (Azure Elastic Jobs).

Permissions

Możesz przyznać EXECUTE uprawnienia tej procedurze, ale mogą one zostać nadpisane podczas aktualizacji SQL Server.

Inni użytkownicy muszą otrzymać jedną z następujących stałych ról msdb bazy danych SQL Server Agent:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Szczegóły dotyczące uprawnień tych ról można znaleźć w sekcji SQL Server Agent Fixed Database Roles.

Tylko członkowie roli stałego serwera administratora systemu mogą ustawiać lub zmieniać wartość @owner_login_name. Jeśli użytkownicy spoza roli administratora systemu ustawią lub zmienią wartość @owner_login_name, wykonanie tej procedury przechowywanej nie ulega awarii i pojawia się błąd.

Przykłady

A. Dodaj pracę

Ten przykład dodaje nowe zadanie o nazwie NightlyBackups.

USE msdb;
GO

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

B. Dodaj zadanie z pagerem, e-mailem i informacjami do wysyłania przez internet

Ten przykład tworzy zadanie o nazwie, Ad hoc Sales Data Backup które powiadamia François Ajenstat (pagerem, e-mailem lub komunikatem sieciowym), jeśli zadanie się nie powiedzie, a po pomyślnym zakończeniu usuwa zadanie.

Uwaga / Notatka

Ten przykład zakłada, że operator o nazwie oraz François Ajenstat login o nazwie françoisa już istnieją.

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