Erstellen eines Analysis Services-Auftragsschritts
Gilt für: SQL Server Azure SQL Managed Instance
Wichtig
In Azure SQL Managed Instance werden derzeit die meisten, aber nicht alle, SQL Server-Agent-Features unterstützt. Details hierzu finden Sie unter Unterschiede bei T-SQL zwischen SQL Server und Azure SQL Managed Instance.
Dieser Artikel erläutert die Erstellung und Definition von Auftragsschritten des SQL Server-Agent in SQL Server, die SQL Server-Analysis Services-Befehle und -Abfragen mithilfe von SQL Server Management Studio, Transact-SQL oder SQL Server Management Objects ausführen.
Vorbereitungen:
So erstellen Sie einen SQL Server-Auftrag mithilfe von Analysis Services-Befehlen bzw. -Abfragen mit
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 zur MDX-Anweisung (MDX).
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. 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.
Verwendung von SQL Server Management Studio
So erstellen Sie einen Auftragsschritt für den Analysis Services-Befehl
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server-Datenbank-Engineher, und erweitern Sie dann diese Instanz.
Erweitern Sie SQL Server-Agent, erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie dann auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.
Klicken Sie im Dialogfeld Auftragseigenschaften auf die Registerkarte Schritte , und klicken Sie dann auf Neu.
Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.
Klicken Sie in der Liste Typ auf SQL Server Analysis Services-Befehl.
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.
Wählen Sie den Server aus, auf dem der Auftragsschritt ausgeführt wird, oder geben Sie den Servernamen ein.
Geben Sie im Feld Befehl die auszuführende Anweisung ein, oder klicken Sie auf Öffnen , um eine Anweisung auszuwählen.
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.
So erstellen Sie einen Auftragsschritt für die Analysis Services-Abfrage
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server-Datenbank-Engineher, und erweitern Sie dann diese Instanz.
Erweitern Sie SQL Server-Agent, erstellen Sie einen neuen Auftrag, oder klicken Sie mit der rechten Maustaste auf einen vorhandenen Auftrag, und klicken Sie dann auf Eigenschaften. Weitere Informationen zum Erstellen eines Auftrags finden Sie unter Erstellen von Aufträgen.
Klicken Sie im Dialogfeld Auftragseigenschaften auf die Seite Schritte und dann auf Neu.
Geben Sie im Dialogfeld Neuer Auftragsschritt unter Schrittnameeinen Schrittnamen für den Auftrag ein.
Klicken Sie in der Liste Typ auf SQL Server Analysis Services-Abfrage.
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.
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.
Geben Sie im Feld Befehl die auszuführende Anweisung ein, oder klicken Sie auf Öffnen , um eine Anweisung auszuwählen.
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.
Verwenden von Transact-SQL
So erstellen Sie einen Auftragsschritt für den Analysis Services-Befehl
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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 AdventureWorks2022 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 AdventureWorks2022 Microsoft SQL Server database', @subsystem = N'ANALYSISCOMMAND', @command = N' <Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <ParentObject> <DatabaseID>AdventureWorks2022</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>AdventureWorks2022</ID> <Name>Adventure Works 2022</Name> <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorks2022;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).
So erstellen Sie einen Auftragsschritt für die Analysis Services-Abfrage
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Datenbank-Engine-Instanz her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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 [AdventureWorks2022]', @retry_attempts = 5, @retry_interval = 5 ; GO
Weitere Informationen finden Sie unter sp_add_jobstep (Transact-SQL).
Verwendung von 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).