Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utwórz zadanie agenta serwera SQL przy użyciu T-SQL

SQL Server Agent to usługa Microsoft Windows, która wykonuje zaplanowane zadania administracyjne, zwane zadaniami w SQL Server.

T-SQL zawiera duży zbiór procedur przechowywanych, które zajmują się zadaniami SQL Server Agent.

Tutaj użyjemy niektórych z nich do utworzenia i zaplanowania zadania agenta SQL Server.

Jeśli wolisz, możesz również tworzyć zadania agenta SQL Server za pomocą GUI (w SSMS).

Włącz XP agenta

Jeśli po raz pierwszy tworzysz zadanie SQL Server Agent w swojej instancji SQL Server, prawdopodobnie będziesz musiał włączyć rozszerzone procedury składowane agenta SQL Server (Agent XP).

Oto jak to zrobić za pomocą T-SQL, a oto jak to zrobić za pomocą GUI SSMS.

Gdy to zrobisz, możesz kontynuować i utworzyć zadanie agenta SQL Server, jak to poniżej.

Przykład

Oto przykład kodu używanego do tworzenia i planowania zadania agenta SQL Server.

USE msdb;  
GO  
EXEC sp_add_job  
    @job_name = N'BackupPetHotelDB' ;  
GO  
EXEC sp_add_jobstep  
    @job_name = N'BackupPetHotelDB',  
    @step_name = N'Run the backup',  
    @subsystem = N'TSQL',  
    @command = N'BACKUP DATABASE [PetHotel] TO DISK = N''C:\Backups\PetHotel.bak'' WITH CHECKSUM',
    @retry_attempts = 5,  
    @retry_interval = 5;  
GO
EXEC sp_add_schedule 
    @schedule_name = N'RunDailyAM',
    @freq_type = 4,
    @freq_interval = 4,
    @active_start_time = 041000;
GO  
EXEC sp_attach_schedule  
   @job_name = N'BackupPetHotelDB',  
   @schedule_name = N'RunDailyAM';  
GO  
EXEC sp_add_jobserver  
    @job_name = N'BackupPetHotelDB';  
GO

Tutaj używamy pięciu procedur składowanych w celu utworzenia i zaplanowania zadania. Większość z tych procedur akceptuje znacznie więcej (opcjonalnych) argumentów niż te, których użyłem w tym przykładzie. Aby uzyskać pełną listę argumentów dostępnych dla każdej procedury, zobacz łącza w poniższej tabeli.

Te procedury składowane znajdują się w msdb bazy danych i widać, że ustawiliśmy msdb jako bieżąca baza danych, zanim je uruchomiliśmy. Alternatywnie możesz zakwalifikować je nazwą bazy danych (np. msdb.dbo.sp_add_job... itd.)

Poniższa tabela zawiera szybki przegląd każdej procedury.

Procedura przechowywana Opis
sp_add_job Dodaje nowe zadanie wykonywane przez usługę SQL Agent.

Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji.
sp_add_jobstep Dodaje krok, który wykonuje rzeczywistą operację dla zadania dodanego za pomocą sp_add_job .

W powyższym przykładzie dodajemy krok do backupu bazy danych. Określamy to podając polecenie T-SQL.

@retry_interval jest w kilka minut.

Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji.
sp_add_schedule Tworzy harmonogram, który może być używany przez dowolną liczbę zadań.

W tym przypadku podaliśmy @freq_type wartość 4 który jest codziennie. Daliśmy również @freq_interval wartość 4 , który jest również codziennie.

Czas jest oparty na zegarze 24-godzinnym i jest wprowadzany w postaci GGMMSS. Nasz przykład używa 041000 , czyli 04:10:00.

Zobacz łącze Microsoft poniżej, aby zapoznać się z różnymi opcjami dostępnymi podczas ustawiania częstotliwości.

Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji.
sp_attach_schedule Ustawia harmonogram zadania. Tutaj dołączamy harmonogram, który dodaliśmy za pomocą sp_add_schedule do zadania, które dodaliśmy za pomocą sp_add_job .

Pamiętaj, że harmonogram i zadanie muszą mieć tego samego właściciela.

Ponadto harmonogram można ustawić dla więcej niż jednego zadania, a zadanie można uruchomić w więcej niż jednym harmonogramie.

Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji.
sp_add_jobserver Celuje określone zadanie na określonym serwerze. Akceptuje to również @server_name argument do określenia serwera.

Wartość domyślna to (LOCAL) dla komputera lokalnego. W naszym przykładzie użyliśmy komputera lokalnego, więc mogliśmy pominąć ten argument.

Odwiedź witrynę firmy Microsoft, aby uzyskać więcej informacji.

Wyświetl zadanie

Możesz użyć sp_help_job procedura składowana w msdb bazy danych, aby wyświetlić zadania SQL Server Agent, które zostały utworzone na serwerze.

EXEC sp_help_job;

Oto jak to wygląda na mojej maszynie testowej:

W tym przypadku są trzy miejsca pracy.

Możesz również zobaczyć zadania w Eksploratorze obiektów, gdy masz SQL Server Agent> Zadania węzeł rozwinięty.

sp_help_job procedura składowana umożliwia podanie nazwy lub identyfikatora zadania w celu uzyskania bardziej szczegółowych informacji o tym zadaniu.

Przykład:

EXEC sp_help_job @job_name= 'BackupPetHotelDB';

Wynik:

Wyniki są rozdzielane na podstawowe szczegóły zadania, etapy zadania, harmonogramy zadań i serwery docelowe zadań. Odzwierciedla to w dużym stopniu procedury składowane, które uruchomiliśmy podczas tworzenia zadania.

Zobacz dokumentację firmy Microsoft dla sp_help_job aby uzyskać więcej informacji, a także listę innych argumentów, które możesz podać.

Przetestuj zadanie

Możesz użyć sp_start_job procedura składowana, aby sprawdzić, czy zadanie zostanie uruchomione. Ta procedura akceptuje nazwę lub identyfikator zadania i uruchomi zadanie, gdy tylko wykonasz procedurę.

Zobacz Jak uruchomić zadanie agenta SQL Server przy użyciu T-SQL, jako przykład.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można rozwiązać konfliktu sortowania między SQL_Latin1_General_CP1_CI_AS i Latin1_General_CI_AS w operacji równej

  2. Entity Framework 6 wycofywanie transakcji

  3. Usuwanie zapamiętanej listy loginów i haseł w SQL Server Management Studio

  4. WSTAW WARTOŚCI, GDZIE NIE ISTNIEJĄ

  5. Najszybszy sposób na ustalenie, czy rekord istnieje