Erstellen von Berichtsdatasets aus einer relationalen SQL Server-Datenbank

Reporting Services stellt eine Datenverarbeitungserweiterung bereit, die das Abrufen von Berichtsdaten aus relationalen MicrosoftSQL Server-Datenbanken unterstützt. Mit dieser Datenverarbeitungserweiterung werden Daten aus den relationalen Datentabellen, Sichten, gespeicherten Prozeduren und sonstigen Datenstrukturen abgerufen, die für die zugrunde liegende Datenquelle definiert sind. Wenn Sie die Verbindung mit einer Datenquelle hergestellt haben, können Sie ein Berichtsdataset erstellen, in dem die Daten aus dieser Datenquelle definiert werden, die Sie in dem Bericht verwenden möchten. Ein Reporting Services-Dataset enthält eine Datenquelle, eine Abfrage zum Abrufen von Daten, wenn der Bericht verarbeitet wird, sowie eine Auflistung von Feldern. Die Definition des Datasets wird in der Berichtsdefinition gespeichert. Im Bereich Berichtsdaten werden die aktuellen Datasetdefinitionen in einem Bericht angezeigt.

Sie definieren ein Dataset, indem Sie eine Abfrage mithilfe von Transact-SQL-Abfragetext oder von gespeicherten Prozeduraufrufen erstellen oder indem Sie eine Tabelle auswählen und sämtliche Daten daraus abrufen. Die Auflistung von Feldern für ein Dataset wird automatisch anhand der Abfrage erstellt. Sie können Felder bearbeiten oder berechnete Felder hinzufügen. Berechnete Felder besitzen auf Ausdrücken beruhende Werte, die beim Ausführen der Abfrage berechnet werden. Die Datentypen der Felder werden einer Teilmenge der CLR-Datentypen (Common Language Runtime) von .NET Framework zugeordnet. Weitere Informationen finden Sie unter Grundlegendes zu Berichtsdatasets und Vorgehensweise: Abrufen von Daten aus einer SQL Server-Datenquelle.

Für relationale Datenquellen stehen zwei Abfrage-Designer zur Verfügung: ein textbasierter Abfrage-Designer und ein grafischer Abfrage-Designer. Standardmäßig wird der textbasierte Abfrage-Designer geöffnet. Verwenden Sie den textbasierten Abfrage-Designer, um Transact-SQL-Text direkt einzugeben, Abfragetext aus einer anderen Quelle einzufügen, komplexe Abfragen einzugeben, die mit dem grafischen Abfrage-Designer nicht erstellt werden können, oder um abfragebasierte Ausdrücke einzugeben. Verwenden Sie den grafischen Abfrage-Designer, um die Metadaten in der Datenquelle zu durchsuchen, um eine Abfrage interaktiv zu entwerfen oder eine Liste von gespeicherten Prozeduren oder Tabellen in der Datenquelle anzuzeigen. Weitere Informationen finden Sie unter Grafische Benutzeroberfläche des Abfrage-Designers, Textbasierte Benutzeroberfläche für den Abfrage-Designer und Vorgehensweise: Abrufen von Daten aus einer SQL Server-Datenquelle.

Nach dem Definieren einer Abfrage können Sie auch Eigenschaften angeben, zum Beispiel Timeout und CaseSensitivity, und die Berichtsparameter definieren, über die Werte an Abfrageparameter übergeben werden. Wenn Sie die Abfrage ausführen, wird ein Resultset aus der Datenquelle angezeigt. Die Spalten im Resultset sind den Feldern im Dataset zugeordnet. Wenn der Bericht verarbeitet wird, werden die abgerufenen oder berechneten Daten in Berichtselementen angezeigt, die an die Felder im Dataset gebunden sind. In Berichten wird nur das erste Resultset verarbeitet, das von einer beliebigen Abfrage abgerufen wird.

Angeben einer Abfrage

Sie können für eine SQL Server-Datenquelle den textbasierten Abfrage-Designer oder den grafischen Abfrage-Designer verwenden, um für das Dataset eine Abfrage anzugeben. Wenn Sie die Abfrage für ein neues Dataset angeben, wird standardmäßig der grafische Abfrage-Designer geöffnet. Wenn die vorhandene Datasetabfrage zu komplex ist, um im grafischen Abfrage-Designer angezeigt zu werden, wird der textbasierte Abfrage-Designer geöffnet. Beide Abfrage-Designer unterstützen die folgenden Abfragetypen: Text und StoredProcedure. Sie geben den Typ der Abfrage im Dialogfeld Dataseteigenschaften an, bevor Sie den Abfrage-Designer öffnen.

Wenn Sie Abfrageparameter in den Abfragetext einbinden, erstellt Reporting Services die entsprechenden Berichtsparameter für den Abfragetyp Text. Wenn die gespeicherten Prozeduren Eingabeparameter aufweisen, erstellt Reporting Services die entsprechenden Berichtsparameter für den Abfragetyp StoredProcedure. Weitere Informationen zu Abfrageparametern und Berichtsparametern finden Sie weiter unten in diesem Thema unter Verwenden von Abfrageparametern.

Weitere Informationen zu den einzelnen Abfrage-Designern finden Sie unter Textbasierte Benutzeroberfläche für den Abfrage-Designer und Grafische Benutzeroberfläche des Abfrage-Designers.

Verwenden des Abfragetyps 'Text'

Wenn der Abfrage-Designer im Modus Text geöffnet wird, können Sie Transact-SQL-Befehle eingeben, um die Daten in einem Dataset zu definieren. Mit der folgenden Transact-SQL-Abfrage werden zum Beispiel die vollständigen Namen aller Mitarbeiter ausgewählt.

SELECT FirstName, LastName
FROM   HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID

Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen (!), um die Abfrage auszuführen und die Ergebnisse im Bereich Ergebnis anzuzeigen.

Sie haben auch die Möglichkeit, vorhandene Abfragen aus einem anderen Bericht oder aus SQL-Dateien zu importieren.

Verwenden des Abfragetyps 'StoredProcedure'

Wenn der Abfrage-Designer im Modus StoredProcedure geöffnet wird, haben Sie die zu verwendende gespeicherte Prozedur bereits ausgewählt, als Sie im Dialogfeld Dataseteigenschaften die Option StoredProcedure angegeben haben.

Wenn Sie bereits den Namen einer anderen gespeicherten Prozedur kennen, die Sie ausführen möchten, können Sie den vorhandenen Text ersetzen und den Namen der neuen gespeicherten Prozedur im Abfragebereich eingeben.

Reporting Services unterstützt gespeicherte Prozeduren, die nur ein Dataset zurückgeben. Wenn eine gespeicherte Prozedur mehrere Resultsets zurückgibt, wird nur das erste verwendet.

Falls eine gespeicherte Prozedur einen Parameter mit einem Standardwert aufweist, können Sie auf diesen Wert in Reporting Services zugreifen, indem Sie das DEFAULT-Schlüsselwort als Wert für den Parameter verwenden. Ist der Abfrageparameter mit einem Berichtsparameter verknüpft, kann der Benutzer das Wort DEFAULT im Eingabefeld für den Berichtsparameter eingeben oder auswählen. Weitere Informationen finden Sie unter Gespeicherte Prozeduren (Datenbankmodul).

Verwenden von Abfrageparametern

Für Abfragetext mit Parametern oder für gespeicherte Prozeduren mit Eingabeparametern erstellt der Berichts-Designer beim Ausführen der Abfrage in der Berichtsdefinition automatisch die entsprechenden Berichtsparameter. Bei der Ausführung des Berichts werden die Werte für die Berichtsparameter an die Abfrageparameter übergeben. Durch die folgende SQL-Abfrage wird beispielsweise ein Berichtsparameter mit dem Namen EmpID erstellt:

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

Sie können die Beziehung zwischen Berichtsparametern und Abfrageparametern mithilfe von Dataseteigenschaften (Dialogfeld), Parameter verwalten. Für Abfragen mit Parametern, die mit Berichtsparametern verknüpft sind, ist keine DECLARE-Anweisung erforderlich.

Obwohl Berichtsparameter automatisch aus Abfrageparametern erstellt werden, verwalten Sie die Berichtsparameter separat im Bereich Berichtsdaten.

HinweisHinweis

Wenn Sie einen Abfrageparameter umbenennen oder löschen, wird der entsprechende Berichtsparameter nicht automatisch geändert bzw. gelöscht. Sie können die Reihenfolge von Berichtsparametern entfernen oder ändern, indem Sie die Schaltflächen auf der Symbolleiste im Bereich Berichtsdaten verwenden. Weitere Informationen finden Sie unter Hinzufügen von Parametern zum Bericht.