Taakstappen beheren
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.
Een taakstap is een actie die de taak uitvoert op een database of een server. Elke taak moet ten minste één taakstap hebben. Taakstappen kunnen het volgende zijn:
Uitvoerbare programma's en opdrachten van het besturingssysteem.
Transact-SQL-instructies, waaronder opgeslagen procedures en uitgebreide opgeslagen procedures.
PowerShell-scripts.
Microsoft ActiveX-scripts.
Replicatietaken.
Analysis Services-opdrachten.
Integration Services-pakketten.
Elke taakstap wordt uitgevoerd in een specifieke beveiligingscontext. Als de taakstap een proxy opgeeft, wordt de taakstap uitgevoerd in de beveiligingscontext van de referentie voor de proxy. Als een taakstap geen proxy opgeeft, wordt de taakstap uitgevoerd in de context van het SQL Server Agent-serviceaccount. Alleen leden van de vaste serverfunctie sysadmin kunnen taken maken die niet expliciet een proxy opgeven.
Omdat taakstappen worden uitgevoerd in de context van een specifieke Microsoft Windows-gebruiker, moet die gebruiker over de machtigingen en configuratie beschikken die nodig zijn om de taakstap uit te voeren. Als u bijvoorbeeld een taak maakt waarvoor een stationsletter of een UNC-pad (Universal Naming Convention) is vereist, kunnen de taakstappen worden uitgevoerd onder uw Windows-gebruikersaccount tijdens het testen van de taken. De Windows-gebruiker voor de taakstap moet echter ook over de benodigde machtigingen, stationsletterconfiguraties of toegang tot het vereiste station beschikken. Anders mislukt de taakstap. Om dit probleem te voorkomen, moet u ervoor zorgen dat de proxy voor elke taakstap over de benodigde machtigingen beschikt voor de taak die door de taakstap wordt uitgevoerd. Zie Security and Protection (Database Engine)voor meer informatie.
Taakstaplogboeken
SQL Server Agent kan uitvoer schrijven van sommige taakstappen naar een besturingssysteembestand of naar de tabel sysjobstepslogs in de msdb-database. De volgende taakstaptypen kunnen uitvoer naar beide bestemmingen schrijven:
Uitvoerbare programma's en opdrachten van het besturingssysteem.
Transact-SQL verklaringen.
Analysis Services-taken.
Alleen taakstappen die worden uitgevoerd door gebruikers die lid zijn van de vaste serverrol sysadmin, kunnen taakstapuitvoer schrijven naar besturingssysteembestanden. Als taakstappen worden uitgevoerd door gebruikers die lid zijn van de rollen SQLAgentUserRole, SQLAgentReaderRole of de vaste databaserollen SQLAgentOperatorRole in de msdb-database, kunnen de uitvoer van deze taakstappen alleen worden geschreven naar de tabel sysjobstepslogs.
Taakstaplogboeken worden automatisch verwijderd wanneer taken of taakstappen worden verwijderd.
Notitie
Logboekregistratie van replicatietaken en Integration Services-pakkettaken wordt verwerkt door hun respectieve subsysteem. U kunt SQL Server Agent niet gebruiken om logboekregistratie van jog-stappen te configureren voor deze typen taakstappen.
Uitvoerbare programma's en Operating-System opdrachten als taakstappen
Uitvoerbare programma's en opdrachten van het besturingssysteem kunnen worden gebruikt als taakstappen. Deze bestanden hebben mogelijk .bat, .cmd, .com of .exe bestandsextensies.
Wanneer u een uitvoerbaar programma of een opdracht van het besturingssysteem als taakstap gebruikt, moet u het volgende opgeven:
De afsluitcode van het proces wordt geretourneerd als de opdracht is geslaagd.
De opdracht die moet worden uitgevoerd. Als u een besturingssysteemopdracht wilt uitvoeren, is dit gewoon de opdracht zelf. Voor een extern programma is dit de naam van het programma en de argumenten voor het programma, bijvoorbeeld: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q 'sp_who'
Notitie
U moet het volledige pad naar het uitvoerbare bestand opgeven als het uitvoerbare bestand zich niet in een map bevindt die is opgegeven in het systeempad of het pad voor de gebruiker die door de taakstap wordt uitgevoerd.
Transact-SQL Taakstappen
Wanneer u een Transact-SQL taakstap maakt, moet u het volgende doen:
Identificeer de database waarin de taak moet worden uitgevoerd.
Typ de Transact-SQL instructie die u wilt uitvoeren. De instructie kan een opgeslagen procedure of een uitgebreide procedure aanroepen.
U kunt desgewenst een bestaand Transact-SQL bestand openen als de opdracht voor de taakstap.
Transact-SQL taakstappen maken geen gebruik van SQL Server Agent-proxy's. In plaats daarvan wordt de taakstap uitgevoerd als de eigenaar van de taakstap, of als het SQL Server Agent-serviceaccount, wanneer de eigenaar van de taakstap lid is van de vaste serverrol sysadmin. Leden van de vaste serverrol sysadmin kunnen ook instellen dat Transact-SQL taakstappen worden uitgevoerd in de context van een andere gebruiker met behulp van de parameter database_user_name van de sp_add_jobstep stored procedure. Zie sp_add_jobstep (Transact-SQL)voor meer informatie.
Notitie
Eén Transact-SQL taakstap kan meerdere batches bevatten. Transact-SQL taakstappen kunnen ingebedde GO-opdrachten bevatten.
Taakstappen voor PowerShell-scripting
Wanneer u een PowerShell-scripttaakstap maakt, moet u een van de twee dingen opgeven als de opdracht voor de stap:
De tekst van een PowerShell-script.
Een bestaand PowerShell-scriptbestand dat moet worden geopend.
Het PowerShell-subsysteem van de SQL Server Agent opent een PowerShell-sessie en laadt de SQL Server PowerShell-invoegtoepassingen. Het PowerShell-script dat wordt gebruikt als de opdracht voor de taakstap, kan verwijzen naar de SQL Server PowerShell-provider en cmdlets. Zie de SQL Server PowerShell-voor meer informatie over het schrijven van PowerShell-scripts met behulp van de SQL Server PowerShell-snap-ins.
Stappen voor ActiveX-scriptingtaken
Belangrijk
De ActiveX-scripttaakstap wordt verwijderd uit SQL Server Agent in een toekomstige versie van Microsoft SQL Server. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.
Wanneer u een ActiveX-scripttaakstap maakt, moet u het volgende doen:
Identificeer de scripttaal waarin de taakstap is geschreven.
Schrijf het ActiveX-script.
U kunt ook een bestaand ActiveX-scriptbestand openen als de opdracht voor de taakstap. ActiveX-scriptopdrachten kunnen ook extern worden gecompileerd (bijvoorbeeld met Behulp van Microsoft Visual Basic) en vervolgens worden uitgevoerd als uitvoerbare programma's.
Wanneer een taakstapopdracht een ActiveX-script is, kunt u het OBJECT SQLActiveScriptHost gebruiken om uitvoer af te drukken naar het taakstapgeschiedenislogboek of COM-objecten te maken. SQLActiveScriptHost is een globaal object dat wordt geïntroduceerd door het hostsysteem van SQL Server Agent in de scriptnaamruimte. Het object heeft twee methoden (Print en CreateObject). In het volgende voorbeeld ziet u hoe ActiveX-scripts werken in Visual Basic Scripting Edition (VBScript).
' VBScript example for ActiveX Scripting job step
' Create a Dmo.Server object. The object connects to the
' server on which the script is running.
Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.LoginSecure = True
oServer.Connect "(local)"
'Disconnect and destroy the server object
oServer.DisConnect
Set oServer = nothing
Stappen voor replicatietaak
Wanneer u publicaties en abonnementen maakt met behulp van replicatie, worden replicatietaken standaard gemaakt. Het type taak dat wordt gemaakt, wordt bepaald door het type replicatie (momentopname, transactionele of samenvoeging) en de gebruikte opties.
Stappen voor replicatietaken activeren een van deze replicatieagents:
Momentopnameagent (momentopnametaak)
Log Reader-agent (LogReader-taak)
Distributieagent (distributietaak)
Samenvoegagent (samenvoegopdracht)
Queue Reader Agent (QueueReader-taak)
Wanneer replicatie is ingesteld, kunt u opgeven dat de replicatieagenten op drie manieren moeten worden uitgevoerd: continu nadat SQL Server Agent is gestart, op aanvraag of volgens een schema. Zie Overzicht van replicatieagentsvoor meer informatie over replicatieagents.
Stappen voor Analysis Services-taken
SQL Server Agent ondersteunt twee verschillende typen Analysis Services-taakstappen, opdrachttaakstappen en querytaakstappen.
De taakstappen voor een Analysis Services-commando
Wanneer u een Analysis Services-opdrachttaakstap maakt, moet u het volgende doen:
Identificeer de OLAP-databaseserver waarin de taakstap moet worden uitgevoerd.
Typ de instructie die u wilt uitvoeren. De opdracht moet een XML zijn voor de Analysis Services Uitvoermethode. De verklaring bevat mogelijk geen volledige SOAP-envelop of een XML van Analysis Services Discover-methode. Merk op dat, terwijl SQL Server Management Studio volledige SOAP-enveloppen en de Ontdekken methode ondersteunt, de jobstappen van SQL Server Agent dit niet doen.
Querytaakstappen van Analysis Services
Wanneer u een Analysis Services-querytaakstap maakt, moet u het volgende doen:
Identificeer de OLAP-databaseserver waarin de taakstap moet worden uitgevoerd.
Typ de instructie die u wilt uitvoeren. De instructie moet een MDX-query (multidimensionale expressies) zijn.
Zie MDX Statement Fundamentals (MDX)voor meer informatie over MDX.
Integration Services-pakketten
Wanneer u een Integration Services-pakkettaakstap maakt, moet u het volgende doen:
Identificeer de bron van het pakket.
Identificeer de locatie van het pakket.
Als configuratiebestanden vereist zijn voor het pakket, identificeert u de configuratiebestanden.
Als opdrachtbestanden vereist zijn voor het pakket, identificeert u de opdrachtbestanden.
Identificeer de verificatie die moet worden gebruikt voor het pakket. U kunt bijvoorbeeld opgeven dat het pakket moet worden ondertekend of dat het pakket een specifieke pakket-id moet hebben.
Identificeer de gegevensbronnen voor het pakket.
Identificeer de logboekproviders voor het pakket.
Geef variabelen en waarden op die u wilt instellen voordat u het pakket uitvoert.
Uitvoeringsopties identificeren.
Opdrachtregelopties toevoegen of wijzigen.
Als u het pakket hebt geïmplementeerd in de SSIS-catalogus en u SSIS-catalogus opgeeft als pakketbron, wordt veel van deze configuratiegegevens automatisch opgehaald uit het pakket. Op het tabblad Configuratie kunt u de omgeving, parameterwaarden, verbindingsbeheerwaarden, eigenschapsoverschrijvingen en of het pakket wordt uitgevoerd in een 32-bits runtimeomgeving opgeven.
Zie SQL Server Agent-taken voor pakkettenvoor meer informatie over het maken van taakstappen waarmee Integration Services-pakketten worden uitgevoerd.
Gerelateerde taken
Beschrijving | Onderwerp |
---|---|
Hierin wordt beschreven hoe u een taakstap maakt met een uitvoerbaar programma. | een cmdExec-taakstap maken |
Hierin wordt beschreven hoe u sql Server Agent-machtigingen opnieuw instelt. | een gebruiker configureren voor het maken en beheren van SQL Server Agent-taken |
Hierin wordt beschreven hoe u een Transact-SQL taakstap maakt. | Maak een Transact-SQL taakstap |
Hierin wordt beschreven hoe u opties definieert voor Microsoft SQL Server Agent Transact-SQL taakstappen. | Opties voor Transact-SQL taakstap definiëren |
Hierin wordt beschreven hoe u een ActiveX-scripttaakstap maakt. | Maak een ActiveX-script-taakstap |
Hierin wordt beschreven hoe u sql Server Agent-taakstappen maakt en definieert waarmee SQL Server Analysis Services-opdrachten en -query's worden uitgevoerd. | een Analysis Services-taakstap maken |
Beschrijft welke actie SQL Server moet uitvoeren als er een fout optreedt tijdens het uitvoeren van de taak. | geslaagde of mislukte taakstroom instellen |
Hierin wordt beschreven hoe u details van de taakstap kunt weergeven in het dialoogvenster Eigenschappen van de taakstap. | taakstapgegevens weergeven |
Hierin wordt beschreven hoe u een sql Server Agent-taakstaplogboek verwijdert. | een taakstaplogboek verwijderen |
Zie ook
sysjobstepslogs (Transact-SQL)
Banen creëren
sp_add_job (Transact-SQL)