Udostępnij za pośrednictwem


Tworzenie zadania agenta programu SQL Server

SQL-DMO zostaną usunięte w następnej wersja Microsoft SQL Server.Unikaj używania funkcji SQL-DMO w nowych prac rozwojowych i plan zmodyfikować aplikacje używające obiektów SQL-DMO.

Następujące przykłady ilustrują tworzenia zadania agenta programu SQL Server.

Służy do tworzenia SQL Distributed Management Objects (SQL-DMO) SQL Server zadania agenta przez:

  • Tworzenie i wypełnianie Job obiektu.

  • Dodawanie Job obiektu, aby Jobs kolekcja JobServer obiektu.

  • Tworzenie i wypełnianie jednego lub więcej JobStep obiektów.

  • Zmienianie Job obiektu, dodając JobStep obiekty utworzone w celu JobSteps kolekcja.

Utworzono zadanie wskazują miejsce docelowe wykonanie.Aby uzyskać więcej informacji na temat przykłady, zobacz Docelowej zadania agenta programu SQL Server.

Ostrzeżenie

SQL Server Agent implementuje wykonywalny podsystemów czynności zadanie.Tekst zadania administracyjnego definiowanie jest interpretowany przez wybranego wykonywalnych podsystemu.W przykładach, które należy wykonać wszystkie kroki zlecenia zadanie utworzone przez przykład użyj pojedynczej wykonywalnego podsystemu.Dla jasności tylko nakłada się tej implementacji.

Przykłady

A.Creating a Job Containing a Transact-SQL Command Batch

Ten przykład ilustruje tworzenie zadanie wieloetapowym.Każdy krok zadanie jest definiowana za pomocą partia poleceń języka Transact-SQL.

W tym przykładzie:

  • Tworzy Job object i dodaje obiekt do Jobs kolekcja, aby utworzyć zadanie agenta programu SQL Server.

  • Pobiera Tables kolekcja Database obiektu.

  • Dla każdego Table obiektu kolekcja:

    • Tworzy JobStep obiektu.

    • Uses the Name property of the Table object to build a Transact-SQL command batch to set the Commandproperty of the JobStep object.

    • Tworzy domyślną zadanie logiki kontroli przepływu.

    • Dodaje JobStep obiektu, aby JobSteps kolekcja Job obiektu.

  • Przypisuje początkowego kroku zadanie i dostosowuje logiki do ostatniego kroku.

  • Zatwierdzenia zadanie modyfikacje.

    ' Table object used in iteration over Tables collection.
    Dim oTable As SQLDMO.Table
    
    Dim oJob As New SQLDMO.Job
    Dim oJobStep As SQLDMO.JobStep
    Dim idStep As Integer
    
    ' Create the SQL Server Agent job. Job will perform an update
    ' of all optimizer-supporting data distribution statistics.
    oJob.Name = "Northwind_Statistics_Update"
    oSQLServer.JobServer.Jobs.Add oJob
    
    ' Alter the job, adding job steps and setting starting step.
    oJob.BeginAlter
    
    ' Each JobStep contains the Transact-SQL command batch
    ' updating statistics for a table.
    idStep = 0
    For Each oTable In oSQLServer.Databases("Northwind").Tables
        ' Only applies to user defined tables....
        If oTable.Attributes <> SQLDMOTabAtt_SystemObject Then
            Set oJobStep = New SQLDMO.JobStep
    
            idStep = idStep + 1
    
            oJobStep.Name = "Northwind_Statistics_Update_Step_" & idStep
            oJobStep.StepID = idStep
    
            oJobStep.DatabaseName = "Northwind"
            oJobStep.SubSystem = "TSQL"
    
            ' TSQL uses the [] syntax to quote table identifers.
            oJobStep.Command = "UPDATE STATISTICS [" & oTable.Name & _
                "] WITH FULLSCAN, NORECOMPUTE"
    
            ' Default logic. Amended below.
            oJobStep.OnFailAction = SQLDMOJobStepAction_QuitWithFailure
            oJobStep.OnSuccessAction = SQLDMOJobStepAction_GotoNextStep
    
            oJob.JobSteps.Add oJobStep
        End If
    Next oTable
    
    ' Reset the logic flow for the last job step to indicate success.
    oJob.JobSteps.ItemByID(idStep).OnSuccessAction = _
        SQLDMOJobStepAction_QuitWithSuccess
    
    ' Set the starting step for the job.
    oJob.StartStepID = 1
    
    ' Alter the job.
    oJob.DoAlter
    

B.Creating a Job Containing an Operating System Command

Ten przykład ilustruje tworzenie zadanie pojedynczy krok.Krok zadanie jest zdefiniowany za pomocą polecenia systemu operacyjnego.

W tym przykładzie:

  • Tworzy Job object i dodaje obiekt do Jobs kolekcja, aby utworzyć zadanie agenta programu SQL Server.

  • Tworzy JobStep obiektu.

  • Przypisuje Command i SubSystem Właściwości, wskazując polecenie systemu operacyjnego.

  • Dodaje JobStep obiektu, aby JobSteps kolekcja zadania obiektu.

  • Przypisuje początkowego kroku dla logiki zadanie i zadanie.

  • Zatwierdzenia zadanie modyfikacje.

    Dim oJob As New SQLDMO.Job
    Dim oJobStep As New SQLDMO.JobStep
    
    Dim strQuote As String
    
    strQuote = Chr$(34)
    
    ' Create the SQL Server Agent job. Job will send a network
    ' popup message.
    oJob.Name = "NetSend"
    oSQLServer.JobServer.Jobs.Add oJob
    
    ' Alter the job, adding job steps and setting starting step.
    oJob.BeginAlter
    
    ' The job is implemented using a single step.
    oJobStep.Name = "NetSend_1"
    oJobStep.StepID = 1
    
    ' Set the job step exucatable subsystem. For operating
    ' system command job steps, the subsystem is "CmdExec"
    oJobStep.SubSystem = "CmdExec"
    
    ' Job step script is:
    '
    ' Net Send SEATTLE1 "Now is the time for all good men " & _
    '    "to come to the aid of the party."
    oJobStep.Command = _
        "Net Send SEATTLE1 " & strQuote & _
        "Now is the time for all good men to come to the " & _
        "aid of the party." & strQuote
    
    ' Logic for a single-step job.
    oJobStep.OnFailAction = SQLDMOJobStepAction_QuitWithFailure
    oJobStep.OnSuccessAction = SQLDMOJobStepAction_QuitWithSuccess
    
    oJob.JobSteps.Add oJobStep
    
    ' Set the starting step for the job.
    oJob.StartStepID = 1
    
    ' Alter the job.
    oJob.DoAlter
    

C.Creating a Job Containing an Active Script Command

Ten przykład ilustruje tworzenie zadanie pojedynczy krok.Krok zadanie jest zdefiniowany za pomocą języka skryptów ActiveX firmy Microsoft.

W tym przykładzie:

  • Tworzy zadania object i dodaje obiekt do Jobs kolekcja, aby utworzyć zadanie agenta programu SQL Server.

  • Tworzy JobStep obiektu.

  • Przypisuje Command, SubSystem, i DatabaseName właściwości ActiveX języka script.

  • Dodaje JobStep obiektu, aby JobSteps kolekcja Job obiektu.

  • Przypisuje początkowego kroku dla logiki zadanie i zadanie.

  • Zatwierdzenia zadanie modyfikacje.

    Dim oJob As New SQLDMO.Job
    Dim oJobStep As New SQLDMO.JobStep
    
    Dim strNewLine As String
    Dim strQuote As String
    
    strNewLine = Chr$(13) & Chr$(10)
    strQuote = Chr$(34)
    
    ' Create the SQL Server Agent job. Job will perform an update
    ' of all optimizer-supporting data distribution statistics.
    oJob.Name = "Northwind_Statistics_Update_ActiveScript"
    oSQLServer.JobServer.Jobs.Add oJob
    
    ' Alter the job, adding job steps and setting starting step.
    oJob.BeginAlter
    
    ' Define the job's single step.
    oJobStep.Name = "Northwind_Statistics_Update_ActiveScript_1"
    oJobStep.StepID = 1
    
    ' Set the job step executable subsystem. For ActiveX Script
    ' job steps, the DatabaseName property records the script
    ' interpreter selected.
    oJobStep.SubSystem = "ActiveScripting"
    oJobStep.DatabaseName = "VBScript"
    
    ' Job step script is:
    '
    ' Set oSQLServer = CreateObject("SQLDMO.SQLServer")
    '
    ' oSQLServer.LoginSecure = True
    ' oSQLServer.Connect
    '
    ' oSQLServer.Databases("Northwind").UpdateIndexStatistics
    '
    ' oSQLServer.DisConnect
    ' Set oSQLServer = Nothing
    
    oJobStep.Command = _
        "Set oSQLServer = CreateObject(" & _
        strQuote & "SQLDMO.SQLServer" & strQuote & ")"
    
    oJobStep.Command = oJobStep.Command & strNewLine & strNewLine
    
    oJobStep.Command = oJobStep.Command & _
        "oSQLServer.LoginSecure = True"
    
    oJobStep.Command = oJobStep.Command & strNewLine
    
    oJobStep.Command = oJobStep.Command & _
        "oSQLServer.Connect"
    
    oJobStep.Command = oJobStep.Command & strNewLine & strNewLine
    
    oJobStep.Command = oJobStep.Command & _
        "oSQLServer.Databases(" & strQuote & "Northwind" & _
        strQuote & ").UpdateIndexStatistics"
    
    oJobStep.Command = oJobStep.Command & strNewLine & strNewLine
    
    oJobStep.Command = oJobStep.Command & _
        "oSQLServer.DisConnect"
    
    oJobStep.Command = oJobStep.Command & strNewLine
    
    oJobStep.Command = oJobStep.Command & _
        "Set oSQLServer = Nothing"
    
    oJobStep.Command = oJobStep.Command & strNewLine
    
    ' Logic for a single-step job.
    oJobStep.OnFailAction = SQLDMOJobStepAction_QuitWithFailure
    oJobStep.OnSuccessAction = SQLDMOJobStepAction_QuitWithSuccess
    
    oJob.JobSteps.Add oJobStep
    
    ' Set the starting step for the job.
    oJob.StartStepID = 1
    
    ' Alter the job.
    oJob.DoAlter