Dela via


Hantera arbetssteg

gäller för:SQL ServerAzure SQL Managed Instance

Viktigt!

Azure SQL Managed Instancestöds de flesta, men inte alla SQL Server Agent-funktioner för närvarande. Se T-SQL-skillnader mellan Azure SQL Managed Instance och SQL Server för mer information.

Ett jobbsteg är en åtgärd som jobbet vidtar på en databas eller en server. Varje jobb måste ha minst ett jobbsteg. Jobbsteg kan vara:

  • Körbara program och operativsystemkommandon.

  • Transact-SQL-uppgifter, inklusive lagrade procedurer och utökade procedurer.

  • PowerShell-skript.

  • Microsoft ActiveX-skript.

  • Replikeringsuppgifter.

  • Analysis Services-uppgifter.

  • Integration Services-paket.

Varje jobbsteg körs i en specifik säkerhetskontext. Om jobbsteget anger en proxy körs jobbsteget i säkerhetskontexten för proxyns autentiseringsuppgifter. Om ett jobbsteg inte anger någon proxy körs jobbsteget i kontexten för SQL Server Agent-tjänstkontot. Endast medlemmar i den fasta serverrollen sysadmin kan skapa jobb som inte uttryckligen anger en proxy.

Eftersom jobbsteg körs i kontexten för en specifik Microsoft Windows-användare måste den användaren ha de behörigheter och den konfiguration som krävs för att jobbsteget ska kunna köras. Om du till exempel skapar ett jobb som kräver en enhetsbeteckning eller en UNC-sökväg (Universal Naming Convention) kan jobbstegen köras under ditt Windows-användarkonto när du testar uppgifterna. Windows-användaren för jobbsteget måste dock också ha nödvändiga behörigheter, enhetsbeteckningskonfigurationer eller åtkomst till den enhet som krävs. Annars misslyckas jobbsteget. För att förhindra det här problemet kontrollerar du att proxyn för varje jobbsteg har de behörigheter som krävs för den uppgift som jobbsteget utför. Mer information finns i Säkerhet och skydd (databasmotor).

Jobbstegsloggar

SQL Server Agent kan skriva utdata från vissa jobbsteg, antingen till en operativsystemfil eller till tabellen sysjobstepslogs i msdb-databasen. Följande jobbstegstyper kan skriva utdata till båda mål:

  • Körbara program och operativsystemkommandon.

  • Transact-SQL-uttalanden.

  • Analysis Services-uppgifter.

Endast jobbsteg som körs av användare som är medlemmar i den fasta serverrollen sysadmin kan skriva jobbstegutdata till operativsystemfiler. Om jobbsteg körs av användare som är medlemmar i SQLAgentUserRole, SQLAgentReaderRole eller SQLAgentOperatorRole-fasta databasroller i msdb-databasen, kan utdata från dessa jobbsteg endast skrivas till tabellen sysjobstepslogs.

Jobbstegsloggar tas bort automatiskt när jobb eller jobbsteg tas bort.

Anmärkning

Replikeringsaktiviteten och integreringstjänstens paketjobbsloggning hanteras av respektive undersystem. Du kan inte använda SQL Server-agenten för att konfigurera stegloggning för de här typerna av jobbsteg.

Körbara program och Operating-System-kommandon som jobbsteg

Körbara program och operativsystemkommandon kan användas som jobbsteg. Dessa filer kan ha filnamnstilläggen .bat, .cmd, .com eller .exe.

När du använder ett körbart program eller ett operativsystemkommando som ett jobbsteg måste du ange:

  • Processens slutkod returnerades om kommandot lyckades.

  • Kommandot som ska köras. Det här är bara själva kommandot för att köra ett operativsystemkommando. För ett externt program är detta namnet på programmet och argumenten till programmet, till exempel: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    Anmärkning

    Du måste ange den fullständiga sökvägen till den körbara filen om den körbara filen inte finns i en katalog som anges i systemsökvägen eller sökvägen för användaren som jobbsteget körs som.

Transact-SQL Arbetssteg

När du skapar ett Transact-SQL jobbsteg måste du:

  • Identifiera databasen där jobbet ska köras.

  • Skriv Transact-SQL-instruktionen som ska köras. Instruktionen kan anropa en lagrad procedur eller en utökad lagrad procedur.

Du kan också öppna en befintlig Transact-SQL fil som kommando för jobbsteget.

Transact-SQL jobbsteg använder inte SQL Server Agent-proxyservrar. I stället körs jobbsteget i egenskap av ägare av jobbsteget, eller som SQL Server Agent-tjänstkontot om ägaren av jobbsteget är medlem i den fasta serverrollen sysadmin. Medlemmar av den fasta serverrollen sysadmin kan också ange att Transact-SQL jobbsteg ska köras i en annan användares kontext genom att använda parametern database_user_name i den lagrade proceduren sp_add_jobstep. Mer information finns i sp_add_jobstep (Transact-SQL).

Anmärkning

Ett enda Transact-SQL jobbsteg kan innehålla flera batchar. Transact-SQL jobbstegen kan innehålla inbäddade GO-kommandon.

Steg för PowerShell-skriptjobb

När du skapar ett PowerShell-skriptjobbsteg måste du ange en av två saker som kommando för steget:

  • Texten i ett PowerShell-skript.

  • En befintlig PowerShell-skriptfil som ska öppnas.

SQL Server Agent PowerShell-undersystemet öppnar en PowerShell-session och laddar SQL Server PowerShell-snapin-modulerna. PowerShell-skriptet som används som jobbstegskommando kan referera till SQL Server PowerShell-providern och cmdletarna. Mer information om hur du skriver PowerShell-skript med hjälp av SQL Server PowerShell-snapin-moduler finns i SQL Server PowerShell.

Steg för ActiveX-skriptjobb

Viktigt!

Jobbsteget för ActiveX-skript kommer att tas bort från SQL Server Agent i en framtida version av Microsoft SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

När du skapar ett ActiveX-skriptjobbsteg måste du:

  • Identifiera skriptspråket där jobbsteget skrivs.

  • Skriv ActiveX-skriptet.

Du kan också öppna en befintlig ActiveX-skriptfil som kommando för jobbsteget. Alternativt kan ActiveX-skriptkommandon kompileras externt (till exempel med Microsoft Visual Basic) och sedan köras som körbara program.

När ett jobbstegskommando är ett ActiveX-skript kan du använda SQLActiveScriptHost-objektet för att skriva ut utdata till jobbstegshistorikloggen eller skapa COM-objekt. SQLActiveScriptHost är ett globalt objekt som introduceras av SQL Server Agents värdsystem i skriptens namnrymd. Objektet har två metoder (Print och CreateObject). I följande exempel visas hur ActiveX-skript fungerar i 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  

Steg för replikeringsjobb

När du skapar publikationer och prenumerationer med replikering skapas replikeringsjobb som standard. Vilken typ av jobb som skapas bestäms av typen av replikering (ögonblicksbild, transaktionell eller sammanslagning) och de alternativ som används.

Replikeringsjobbssteg aktiverar en av dessa replikeringsagenter:

  • Ögonblicksbildsagent (ögonblicksbildsjobb)

  • Log Reader Agent (LogReader-jobb)

  • Distributionsagent (distributionsjobb)

  • Sammanslagningsagent (sammanslagningsjobb)

  • Queue Reader Agent (QueueReader-jobb)

När replikeringen har konfigurerats kan du ange att replikeringsagenterna ska köras på något av tre sätt: kontinuerligt när SQL Server-agenten har startats, på begäran eller enligt ett schema. Mer information om replikeringsagenter finns i Översikt över replikeringsagenter.

Jobbsteg för Analysis Services

SQL Server Agent stöder två olika typer av Analysis Services-jobbsteg, kommandojobbssteg och frågejobbssteg.

Steg för kommandouppdrag i Analysis Services

När du skapar ett Analysis Services-kommandojobbssteg måste du:

  • Identifiera databasens OLAP-server där jobbsteget ska köras.

  • Ange kommandot som ska utföras. Instruktionen måste vara ett XML för Analysis Services Execute-metoden. Uttalandet får inte innehålla ett fullständigt SOAP-kuvert eller en XML för Analysis Services Discover-metoden. Observera att även om SQL Server Management Studio stöder fullständiga SOAP-kuvert och metoden Identifiera , gör inte SQL Server Agent-jobbstegen det.

Analysis Services- och frågejobbssteg

När du skapar ett Analysis Services-frågejobbsteg måste du:

  • Identifiera databasens OLAP-server där jobbsteget ska köras.

  • Skriv instruktionen som ska köras. Uttrycket måste vara en multidimensionella uttryck (MDX)-fråga.

Mer information om MDX finns i MDX Statement Fundamentals (MDX).

Integration Services-paket

När du skapar ett Integration Services-paketjobbsteg måste du göra följande:

  • Identifiera paketets källa.

  • Identifiera paketets plats.

  • Om konfigurationsfiler krävs för paketet identifierar du konfigurationsfilerna.

  • Om kommandofiler krävs för paketet identifierar du kommandofilerna.

  • Identifiera verifieringen som ska användas för paketet. Du kan till exempel ange att paketet måste signeras eller att paketet måste ha ett specifikt paket-ID.

  • Identifiera datakällorna för paketet.

  • Identifiera loggprovidrar för paketet.

  • Ange variabler och värden som ska anges innan paketet körs.

  • Identifiera körningsalternativ.

  • Lägg till eller ändra kommandoradsalternativ.

Observera att om du distribuerade paketet till SSIS-katalogen och anger SSIS-katalogen som paketkälla hämtas mycket av den här konfigurationsinformationen automatiskt från paketet. På fliken Konfiguration kan du ange miljö, parametervärden, anslutningshanterarens värden, åsidosättningar av egenskaper och om paketet körs i en 32-bitars körningsmiljö.

Mer information om hur du skapar jobbsteg som kör Integration Services-paket finns i SQL Server Agent-jobb för paket.

Beskrivning Ämne
Beskriver hur du skapar ett jobbsteg med ett körbart program. Skapa ett CmdExec-jobbsteg
Beskriver hur du återställer SQL Server Agent-behörigheter. Konfigurera en användare för att skapa och hantera SQL Server Agent-jobb
Beskriver hur du skapar ett Transact-SQL arbetssteg. Skapa ett Transact-SQL jobbsteg
Beskriver hur du definierar alternativ för Microsoft SQL Server Agent Transact-SQL jobbsteg. Definiera stegalternativ för Transact-SQL jobb
Beskriver hur du skapar ett ActiveX-skriptjobbsteg. Skapa ett ActiveX-skriptjobbsteg
Beskriver hur du skapar och definierar SQL Server Agent-jobbsteg som kör SQL Server Analysis Services-kommandon och frågor. Skapa ett Analysis Services-jobbsteg
Beskriver vilken åtgärd SQL Server ska vidta om ett fel inträffar under jobbkörningen. Ange jobbstegs lyckandes eller misslyckandes flöde
Beskriver hur du visar information om jobbsteg i dialogrutan Egenskaper för jobbsteg. Visa jobbstegsinformation
Beskriver hur du tar bort en SQL Server Agent-jobbsteglogg. Ta bort en jobbstegslogg

Se även

sysjobstepslogs (Transact-SQL)
Skapa jobb
sp_add_job (Transact-SQL)