sp_add_jobstep (języka Transact-SQL)

Dodaje kroku (operacja) do zadanie.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_add_jobstep [ @job_id = ] job_id | [ @job_name = ] 'job_name' 
     [ , [ @step_id = ] step_id ] 
     { , [ @step_name = ] 'step_name' } 
     [ , [ @subsystem = ] 'subsystem' ] 
     [ , [ @command = ] 'command' ] 
     [ , [ @additional_parameters = ] 'parameters' ] 
          [ , [ @cmdexec_success_code = ] code ] 
     [ , [ @on_success_action = ] success_action ] 
          [ , [ @on_success_step_id = ] success_step_id ] 
          [ , [ @on_fail_action = ] fail_action ] 
          [ , [ @on_fail_step_id = ] fail_step_id ] 
     [ , [ @server = ] 'server' ] 
     [ , [ @database_name = ] 'database' ] 
     [ , [ @database_user_name = ] 'user' ] 
     [ , [ @retry_attempts = ] retry_attempts ] 
     [ , [ @retry_interval = ] retry_interval ] 
     [ , [ @os_run_priority = ] run_priority ] 
     [ , [ @output_file_name = ] 'file_name' ] 
     [ , [ @flags = ] flags ] 
     [ , { [ @proxy_id = ] proxy_id 
         | [ @proxy_name = ] 'proxy_name' } ]

Argumenty

  • [ @ job_id =] job_id
    Numer identyfikacyjny zadanie , do którego chcesz dodać do kroku.job_idjest uniqueidentifier, domyślna wartość NULL.

  • [ @ job_name =] 'job_name"
    Nazwa zadanie , do którego chcesz dodać do kroku.job_namejest sysname, domyślna wartość NULL.

    Ostrzeżenie

    Albo job_id lub job_name musi być określona, ale nie może być jednocześnie określone.

  • [ @ step_id =] step_id
    Numer identyfikacyjny kolejny krok zadanie .Krok start numery identyfikacyjne na 1 i wartości przyrostu bez przerwy.Krok jest wstawiany istniejącej sekwencji, numery sekwencji są automatycznie korygowane.Wartość ile jest step_id nie jest określony.step_idjest int, domyślna wartość NULL.

  • [ @ step_name =] 'step_name"
    Nazwa kroku.step_namejest sysname, z braku domyślne.

  • [ @ podsystemu =] 'subsystem"
    Podsystem używany przez SQL Server usługa agenta wykonać command.subsystemjest nvarchar(40), i może być jedną z tych wartości.

    Wartość

    Opis

    'ACTIVESCRIPTING"

    Skryptów aktywnych

    Ważna informacjaWażne:
    Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

    'CMDEXEC"

    Polecenia systemu operacyjnego lub program wykonywalny

    'ROZKŁAD"

    Rozkład Agent replikacji zadanie

    'MIGAWKA"

    Migawki Agent replikacji zadanie

    'LOGREADER"

    Agent odczytywania dziennikareplikacjizadanie

    'Scalanie"

    Scalanie Agent replikacji zadanie

    'QueueReader"

    Agent czytnik kolejki replikacji zadanie

    'ANALYSISQUERY"

    KwerendaAnalysis Services (MDX, DMX).

    'ANALYSISCOMMAND"

    PoleceniaAnalysis Services (XMLA).

    'DTS"

    Integration Services wykonaniepakiet

    'PowerShell"

    Skryptu PowerShell

    'TSQL" (domyślnie)

    Transact-SQL instrukcja

  • [ @command= ] 'command'
    Polecenia, które mają być zrealizowane przez SQLServerAgent usługa za pomocą subsystem.commandjest nvarchar(max), domyślna wartość NULL.SQL Agent serwera dostarcza podstawiania token, który daje ten sam elastyczność, która zapewnia zmiennych podczas pisania programów.

    Ważna informacjaWażne:

    W SQL Server 2005 dodatku Service Pack 1, SQL Server Agent zadanie krok token składnia została zmieniona.W efekcie makro escape musi towarzyszyć teraz wszystkie tokeny używane w krokach zadanie , inaczej tych kroków zadanie zakończy się niepowodzeniem.Ponadto SQL Server 2000 składni, które użyte nawiasy kwadratowe wywoływanie SQL Server Agent zadanie krok tokeny (na przykład "[DATE]") został zmieniony.Należy teraz należy umieścić nazwy tokenu w nawiasach i umieść znak dolara ($) na początku token składni.Na przykład:

    $(ESCAPE_Nazwa makra(DATE))

    Aby uzyskać więcej informacji dotyczących tych tokenów i aktualizowanie czynności zadanie , aby użyć nowego tokenu składni, zobacz Tokeny w krokach zadania.

    Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

    Każdy użytkownik systemu Windows z uprawnieniami do zapisu w dzienniku zdarzeń systemu Windows można uzyskać dostęp do czynności zadanie , które są uaktywniane przez SQL Server alertów agenta lub alerty WMI .Aby uniknąć tego zagrożenia zabezpieczeń SQL Server tokeny Agent, które mogą być używane w zadaniach uaktywniona przez alerty są wyłączone domyślnieTokeny te są następujące: A-DBN, A-SVR, A-ERR, A-SEV, A-MSG., and WMI(właściwość).

    Jeśli konieczne jest użycie tych tokenów, najpierw upewnić, że tylko członkowie zaufane grupy zabezpieczeń systemu Windows, takich jak grupy Administratorzy mają uprawnienia do zapisu w dzienniku zdarzeń komputera, gdzie SQL Server rezyduje.Następnie, kliknij prawym przyciskiem myszy AgentaSQL Server Object Explorer wybierz Właściwościi na System alertu o strona, zaznacz zastąpić tokenów dla wszystkich zadanie odpowiedzi na alerty Aby włączyć te tokeny.

  • [ @ additional_parameters= ] 'parameters"
    Określone tylko w celach informacyjnych. Nieobsługiwane. Przyszła zgodność nie jest gwarantowana. parametersjest ntext, domyślna wartość NULL.

  • [ @ cmdexec_success_code = ] code
    Wartość zwracana przez CmdExec polecenia podsystemu, aby wskazać, że command została wykonana pomyślnie.codejest int, domyślnie 0.

  • [ @ on_success_action= ] success_action
    akcja Aby wykonać krok powiedzie się.success_actionjest tinyint, i może być jedną z tych wartości.

    Wartość

    Opis (akcja)

    1 (wartość domyślna)

    Zakończyć pracę z powodzeniem

    2

    Zakończyć pracę z błędem

    3

    Przejdź do następnego kroku

    4

    Przejdź do krokuon_success_step_id

  • [ @ on_success_step_id = ] success_step_id
    Identyfikator krok to zadanie , aby wykonać , jeśli krok i success_actionjest 4.success_step_idjest int, domyślnie 0.

  • [ @ on_fail_action= ] fail_action
    akcja Aby wykonać krok nie powiedzie się.fail_actionjest tinyint, i może być jedną z tych wartości.

    Wartość

    Opis (akcja)

    1

    Zakończyć pracę z powodzeniem

    2 (wartość domyślna)

    Zakończyć pracę z błędem

    3

    Przejdź do następnego kroku

    4

    Przejdź do krokuon_fail_step_id

  • [ @on_fail_step_id= ] fail_step_id
    Identyfikator krok to zadanie , aby wykonać Jeśli krok nie powiedzie się i fail_actionjest 4.fail_step_idjest int, domyślnie 0.

  • [ @ Serwer = ] 'server"
    Określone tylko w celach informacyjnych. Nieobsługiwane. Przyszła zgodność nie jest gwarantowana. server* *jest nvarchar(30), domyślna wartość NULL.

  • [ @ nazwa_bazy_danych= ] 'database"
    Nazwa bazy danych, w którym wykonać Transact-SQL krok.databasejest sysname, domyślna wartość NULL, w którym to przypadek wzorca baza danych jest używana. Nazwy, które są ujęte w nawiasy kwadratowe ([]) nie są dozwolone.Dla etapu zadanie ActiveX database to nazwa języka wykonywanie skryptów , zastosowań krok.

  • [ @ database_user_name= ] 'user"
    Nazwa konta użytkownika, należy użyć podczas wykonywania Transact-SQL krok.userjest sysname, domyślna wartość NULL.Gdy user ma wartość NULL, uruchamia krok w kontekście użytkownika właściciela zadanie na database.SQL Agent serwera będzie zawierać ten parametr, tylko wtedy, gdy właściciel zadanie jest sysadmin serwera SQL .W takim przypadku dany krok języka Transact -SQL zostanie wykonana w kontekście nazwa danego użytkownika serwera SQL .Jeśli właściciel zadanie jest sysadmin SQL Server, następnie kroku języka Transact -SQL , zawsze będzie wykonywane w kontekście logowania, który jest właścicielem tego zadaniei parametru @ database_user_name zostanie zignorowane.

  • [ @ retry_attempts= ] retry_attempts
    Liczba ponownych prób próbuje użyć, jeśli ten krok nie powiedzie się.retry_attemptsjest int, domyślnie 0, co oznacza nie ponawiania prób.

  • [ @ retry_interval= ] retry_interval
    Ilość czas w minutach między ponownych prób.retry_intervaljest int, domyślnie 0, która wskazuje 0-minute interwału.

  • [ @ os_run_priority = ] run_priority
    Zarezerwowane.

  • [ @ output_file_name= ] 'file_name"
    Nazwa pliku, w którym jest zapisane dane wyjściowe tego kroku.file_namejest nvarchar(200), domyślna wartość NULL.file_namemoże zawierać jedną lub więcej tokeny wymienionych w command.Ten parametr jest prawidłowy tylko w przypadku polecenia uruchomione na Transact-SQL, CmdExec, PowerShell, Integration Services, lub Usługi Analysis Services podsystemów.

  • [ @flags= ] flags
    Jest to opcja, która kontroluje zachowanie.flagsjest int, i może być jedną z tych wartości.

    Wartość

    Opis

    0 (wartość domyślna)

    Zastąpienie pliku wyjściowego

    2

    Dołącz do pliku wyjściowego

    4

    Napisz Transact-SQL zadanie krok wyjściowy do historia

    8

    Zapis dziennika do tabela (Zastąp istniejący historia)

    16

    Zapis dziennika do tabela (dodawaj do istniejącego historia)

    32

    Zapisać wszystkie dane wyjściowe dohistoria zadanie

    64

    Tworzenie zdarzenie systemu Windows używany jako sygnał Cmd jobstep do przerwania

  • [ @ proxy_id=] proxy_id
    Numer identyfikacyjny krok zadanie działającą jako serwer proxy.proxy_idTyp int, domyślna wartość NULL.Jeśli nie proxy_id jest określony, nie proxy_name jest określona i nie user_name jest określony krok zadanie jest uruchamiane jako konto usługa dla SQL Server agenta.

  • [ @ proxy_name=] 'proxy_name"
    Nazwa serwera proxy, który krok zadanie jest uruchamiane jako.proxy_nameTyp sysname, domyślna wartość NULL.Jeśli nie proxy_id jest określony, nie proxy_name jest określona i nie user_name jest określony krok zadanie jest uruchamiane jako konto usługa dla SQL Server agenta.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

Brak

Uwagi

sp_add_jobstep należy uruchomić z msdb bazy danych.

Program SQL Server Management Studio dostarcza łatwy w obsłudze graficzny interfejs zarządzania zadaniami, a używanie go stanowi zalecany sposób tworzenia infrastruktury zadań i zarządzania nią.

Krok zadanie należy określić serwer proxy, chyba że element członkowski jest twórca krok zadanie sysadmin rola zabezpieczeń środka.

Serwer proxy może być identyfikowane poprzez proxy_name lub proxy_id.

Uprawnienia

Domyślnie członkowie sysadmin stała rola serwera można wykonać tę procedura składowana.Inni użytkownicy muszą być przyznawane jedną z następujących SQL Server Agent ról stałej bazy danych w msdb bazy danych:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Szczegółowe informacje na temat uprawnień tych ról, zobacz Ról stałej bazy danych programu SQL Server Agent.

Twórca krok zadanie musi mieć dostęp do serwera proxy dla kroku zadanie .Członkowie sysadmin stała rola serwera ma dostęp do wszystkich serwerów proxy.Inni użytkownicy musi być wyraźnie przyznane dostępu do serwera proxy.

Przykłady

Poniższy przykład tworzy krok zadanie , które zmienia się tylko do odczytu do bazy danych programu access Sales bazy danych.Ponadto w tym przykładzie określa 5 ponownych prób z kolejnymi próbami występują po poczekaj 5 minut.

Ostrzeżenie

W tym przykładzie zakłada się, że Weekly Sales Data Backup zadanie już istnieje.

USE msdb;
GO
EXEC 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