Een CmdExec-taakstap maken
van toepassing op:SQL Server
Azure SQL Managed Instance
Belangrijk
Op Azure SQL Managed Instanceworden de meeste, maar niet alle FUNCTIES van SQL Server Agent momenteel ondersteund. Zie T-SQL-verschillen tussen Azure SQL Managed Instance en SQL Server voor meer informatie.
In dit onderwerp wordt beschreven hoe u een microsoft SQL Server Agent-taakstap maakt en definieert in SQL Server die gebruikmaakt van een uitvoerbaar programma of een opdracht van het besturingssysteem met behulp van SQL Server Management Studio, Transact-SQL of SQL Server Management Objects.
Voordat u begint
Veiligheid
Standaard kunnen alleen leden van de sysadmin vaste serverfunctie CmdExec-taakstappen maken. Deze taakstappen worden uitgevoerd in de context van het SQL Server Agent-serviceaccount, tenzij de sysadmin gebruiker een proxyaccount maakt. Gebruikers die geen lid zijn van de rol sysadmin kunnen stappen voor cmdExec-taken maken als ze toegang hebben tot een CmdExec-proxyaccount.
Machtigingen
Zie SQL Server Agent Securityimplementeren voor gedetailleerde informatie.
SQL Server Management Studio gebruiken
Een CmdExec-taakstap maken
Maak in Objectverkenner verbinding met een exemplaar van de SQL Server Database Engine en vouw dat exemplaar vervolgens uit.
Vouw SQL Server Agent-uit, maak een nieuwe taak of klik met de rechtermuisknop op een bestaande taak en klik vervolgens op Eigenschappen.
Klik in het dialoogvenster Taakeigenschappen op de pagina Stappen en klik vervolgens op Nieuw.
Typ in het dialoogvenster Nieuwe taakstap een taak stapnaam.
Kies in de lijst Typebesturingssysteem (CmdExec).
Selecteer in Uitvoeren als lijst het proxyaccount met de referenties die door de taak worden gebruikt. Standaard worden de stappen van de CmdExec-taak uitgevoerd in de context van het SQL Server Agent-serviceaccount.
Voer in het vak Afsluitcode proces van een geslaagde opdracht een waarde in van 0 tot 999999.
Voer in het vak Opdracht de opdracht van het besturingssysteem of het uitvoerbare programma in. Zie 'Transact T-SQL gebruiken voor een voorbeeld.
Klik op de pagina Geavanceerd om opties voor taakstappen in te stellen, zoals: welke actie moet worden ondernomen als de taakstap slaagt of mislukt, hoe vaak SQL Server Agent de taakstap moet uitvoeren en het bestand waarin SQL Server Agent de taakstap kan schrijven. Alleen leden van de sysadmin vaste serverrol kunnen taakstapuitvoer schrijven naar een besturingssysteembestand.
Transact-SQL gebruiken
Een CmdExec-taakstap maken
Maak in Objectverkennerverbinding met een exemplaar van Database Engine.
Klik op de standaardbalk op Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en klik op uitvoeren.
-- creates a job step that uses CmdExec USE msdb; GO EXEC sp_add_jobstep @job_name = N'Weekly Sales Data Backup', @step_name = N'Set database to read only', @subsystem = N'CMDEXEC', @command = 'C:\clickme_scripts\SQL11\PostBOLReorg GetHsX.exe', @retry_attempts = 5, @retry_interval = 5 ; GO
Zie sp_add_jobstep (Transact-SQL) voor meer informatie
SQL Server-beheerobjecten gebruiken
Een cmdExec-taakstap maken
Gebruik de JobStep-klasse met behulp van een programmeertaal die u kiest, zoals Visual Basic, Visual C# of PowerShell.