Freigeben über


Erstellen eines Analysis Services-Auftragsschritts

In diesem Thema wird beschrieben, wie SQL Server-Agent-Auftragsschritte in SQL Server 2012 erstellt und definiert werden, mit denen SQL Server Analysis Services-Befehle und -Abfragen durch die Verwendung von SQL Server Management Studio, Transact-SQL oder SQL Server Management Objects ausgeführt werden.

  • Vorbereitungen:  

    Einschränkungen

    Sicherheit

  • So erstellen Sie einen SQL Server-Auftrag mithilfe von Analysis Services-Befehlen bzw. -Abfragen mit

    SQL Server Management Studio

    Transact-SQL

    SQL Server Management Objects

Vorbereitungen

Einschränkungen

  • Wenn beim Auftragsschritt ein Analysis Services-Befehl verwendet wird, muss die Befehlsanweisung eine Execute-Methode von XML for Analysis Services sein. Die Anweisung enthält möglicherweise keinen vollständigen SOAP-Umschlag (Simple Object Access Protocol) oder eine Discover-Methode von XML for Analysis. Während SQL Server Management Studio vollständige SOAP-Umschläge und die Discover-Methode unterstützt, ist das bei SQL Server-Agent-Auftragsschritten nicht der Fall. Weitere Informationen zu XML for Analysis Services finden Sie unter Übersicht über XMLA for Analysis (XMLA).

  • Wenn beim Auftragsschritt ein Analysis Services-Abfrage verwendet wird, muss die Abfrageanweisung eine MDX-Abfrage (Multidimensional Expressions, mehrdimensionale Ausdrücke) sein. Weitere Informationen zu MDX finden Sie unter Grundlegendes zu MDX-Abfragen (Analysis Services).

Sicherheit

Berechtigungen

  • Um einen Auftragsschritt auszuführen, der das Analysis Services-Subsystem verwendet, muss ein Benutzer Mitglied der festen Serverrolle sysadmin sein oder Zugriff auf ein gültiges Proxykonto haben, das für die Verwendung dieses Subsystems definiert ist. Darüber hinaus muss es sich bei dem SQL Server-Agent-Dienstkonto oder Proxy um einen Analysis Services-Administrator und ein gültiges Windows-Domänenkonto handeln.

  • Nur Mitglieder der festen Serverrolle sysadmin sind berechtigt, die Ausgabe eines Auftragsschritts in eine Datei zu schreiben. Wenn der Auftragsschritt von Benutzern ausgeführt wird, die in der msdb-Datenbank Mitglied der SQLAgentUserRole-Datenbankrolle sind, können die Ausgabedaten nur in eine Tabelle geschrieben werden. Der SQL Server-Agent schreibt die Ausgabedaten des Auftragsschritts in der msdb-Datenbank in die sysjobsteplog-Tabelle.

  • Ausführliche Informationen finden Sie unter Implementieren der SQL Server-Agent-Sicherheit.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So erstellen Sie einen Auftragsschritt für den Analysis Services-Befehl

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie SQL Server-Agent, und erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie anschließend auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.

  3. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Registerkarte Schritte, und klicken Sie dann auf Neu.

  4. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname einen Schrittnamen für den Auftrag ein.

  5. Klicken Sie in der Liste Typ auf SQL Server Analysis Services-Befehl.

  6. Wählen Sie in der Liste Ausführen als einen Proxy aus, der für die Verwendung des Analysis Services-Befehlssubsystems definiert ist. Ein Benutzer, der Mitglied der festen Serverrolle sysadmin ist, kann zur Ausführung dieses Auftragsschritts auch SQL-Agent-Dienstkonto auswählen.

  7. Wählen Sie den Server aus, auf dem der Auftragsschritt ausgeführt wird, oder geben Sie den Servernamen ein.

  8. Geben Sie im Feld Befehl die auszuführende Anweisung ein, oder klicken Sie auf Öffnen, um eine Anweisung auszuwählen.

  9. Klicken Sie auf die Seite Erweitert, um die Optionen für diesen Auftragsschritt zu definieren. Legen Sie beispielsweise fest, welche Aktion der SQL Server-Agent ausführen soll, wenn der Auftragsschritt erfolgreich ausgeführt wird oder fehlschlägt, wie viele Versuche zur Ausführung des Auftragsschritts unternommen werden sollen und wohin die Ausgabe des Auftragsschritts geschrieben werden soll.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

So erstellen Sie einen Auftragsschritt für die Analysis Services-Abfrage

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie SQL Server-Agent, und erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie anschließend auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.

  3. Klicken Sie im Dialogfeld Auftragseigenschaften auf die Registerkarte Schritte, und klicken Sie dann auf Neu.

  4. Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittname einen Schrittnamen für den Auftrag ein.

  5. Klicken Sie in der Liste Typ auf SQL Server Analysis Services-Abfrage.

  6. Wählen Sie in der Liste Ausführen als einen Proxy aus, der für die Verwendung des Analysis Services-Abfragesubsystems definiert ist. Ein Benutzer, der Mitglied der festen Serverrolle sysadmin ist, kann zur Ausführung dieses Auftragsschritts auch SQL-Agent-Dienstkonto auswählen.

  7. Wählen Sie einen Wert unter Server und Datenbank für die Ausführung des Auftragsschritts aus, oder geben Sie den Server- bzw. Datenbanknamen ein.

  8. Geben Sie im Feld Befehl die auszuführende Anweisung ein, oder klicken Sie auf Öffnen, um eine Anweisung auszuwählen.

  9. Klicken Sie auf die Seite Erweitert, um die Optionen für diesen Auftragsschritt zu definieren. Legen Sie beispielsweise fest, welche Aktion der SQL Server-Agent ausführen soll, wenn der Auftragsschritt erfolgreich ausgeführt wird oder fehlschlägt, wie viele Versuche zur Ausführung des Auftragsschritts unternommen werden sollen und wohin die Ausgabe des Auftragsschritts geschrieben werden soll.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So erstellen Sie einen Auftragsschritt für den Analysis Services-Befehl

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    -- Creates a job step that uses XMLA to create a relational data source that references the AdventureWorks2012 Microsoft SQL Server database
    USE msdb;
    GO
    EXEC sp_add_jobstep
        @job_name = N'Weekly Sales Data Backup',
        @step_name = N'Create a relational data source that references the AdventureWorks2012 Microsoft SQL Server database ',
        @subsystem = N'ANALYSISCOMMAND',
        @command = N' <Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
        <ParentObject>
            <DatabaseID>AdventureWorks2012</DatabaseID>
        </ParentObject>
        <ObjectDefinition>
            <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">
                <ID>AdventureWorks2012</ID>
                <Name>Adventure Works 2012</Name>
                <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorks2012;Integrated Security=True</ConnectionString>
                <ImpersonationInfo>
                    <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>
                </ImpersonationInfo>
                <ManagedProvider>System.Data.SqlClient</ManagedProvider>
                <Timeout>PT0S</Timeout>
            </DataSource>
        </ObjectDefinition>
    </Create>', ;
    GO
    

Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

So erstellen Sie einen Auftragsschritt für die Analysis Services-Abfrage

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.

    -- Creates a job step that uses MDX to return data
    USE msdb;
    GO
    EXEC sp_add_jobstep
        @job_name = N'Weekly Sales Data Backup',
        @step_name = N'Returns the Internet sales amount by state',
        @subsystem = N'ANALYSISQUERY',
        @command = N' SELECT
       [Measures].[Internet Sales Amount] ON COLUMNS,
       [Customer].[State-Province].Members ON ROWS
    FROM [AdventureWorks2012]', 
        @retry_attempts = 5,
        @retry_interval = 5 ;
    GO
    

Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Mit SQL Server Management Objects

So erstellen Sie einen PowerShell-Skript-Auftragsschritt

Verwenden Sie die JobStep-Klasse in einer von Ihnen ausgewählten Programmiersprache, z. B. XMLA oder MDX. Weitere Informationen finden Sie unter SQL Server Management Objects (SMO).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]