Definieren von Berichtsdatasets für eine relationale SQL Server-Datenbank

Aktualisiert: 14. April 2006

Reporting Services bietet eine Datenverarbeitungserweiterung, die das Abrufen von Berichtsdaten aus relationalen Microsoft SQL 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 Fenster Datasets werden die aktuellen Datasetdefinitionen in einem Bericht angezeigt.

Sie definieren ein Dataset, indem Sie eine Abfrage mithilfe von Transact-SQL-Abfragetext oder Aufrufen gespeicherter Prozeduren 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 ausgewertet werden. Sie können auch Filter erstellen, um die Daten in der Quelle einzuschränken, bevor sie an einen Bericht gesendet werden. Anweisungen zum Definieren eines Datasets finden Sie unter Vorgehensweisen für Berichtsdaten.

Für relationale Datenquellen stehen zwei Abfrage-Designer zur Verfügung: ein standardmäßiger Abfrage-Designer und ein grafischer Abfrage-Designer. In der Standardeinstellung wird der standardmäßige Abfrage-Designer geöffnet. Verwenden Sie den standardmäßigen 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.

Wählen Sie die Registerkarte Daten aus, um die Abfrage-Designer im Berichts-Designer zu öffnen. Wenn Sie von einem Abfrage-Designer zum anderen wechseln möchten, klicken Sie auf der Datenansichts-Symbolleiste auf die Umschaltfläche Standardmäßiger Abfrage-Designer (Standardmäßiger Abfrage-Designer (Symbol)). Weitere Informationen und Beispiele finden Sie unter Benutzeroberfläche des Abfrage-Designers für SQL Server.

Nach dem Definieren einer Abfrage können Sie auch Eigenschaften angeben, z. B. 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.

Abfrage-Designer für relationale Daten weisen die folgenden drei Befehlstypen auf:

  • Der Typ Text nimmt Transact-SQL-Anweisungen an.
  • Der Typ StoredProcedure nimmt Aufrufe gespeicherter Prozeduren für die Datenquelle an. In diesem Modus werden keine Ausgabeparameter unterstützt.
  • Der Typ TableDirect nimmt den Namen einer Tabelle in der Datenquelle an und gibt alle Spalten der Tabelle zurück. TableDirect wird nicht von allen Datenprovidern unterstützt.

Verwenden von Abfragetext

Mit Transact-SQL können Sie die Daten in einem Dataset definieren. Dazu legen Sie den Befehlstyp für das Dataset auf Text fest und geben den Transact-SQL-Text direkt im SQL-Bereich ein.

Mit der folgenden Transact-SQL-Abfrage werden z. B. alle 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 Ergebnisbereich anzuzeigen.

Da in diesem Befehlsmodus Transact-SQL-Anweisungen angenommen werden, können Sie in diesem Modus auch eine gespeicherte Prozedur ausführen. Mit der folgenden SQL-Anweisung wird z. B. die gespeicherte Prozedur von AdventureWorks uspGetEmployeeManagers aufgerufen.

EXEC uspGetEmployeeManagers '1'

Verwenden gespeicherter Prozeduren

Sie können gespeicherte Prozeduren verwenden, um die Daten in einem Dataset zu definieren. Dazu können Sie die gespeicherte Prozedur im Abfragebereich ausführen oder aber den Befehlstyp für das Dataset auf StoredProcedure festlegen und die Prozedur in einer Dropdownliste auswählen. Wenn Sie mit dem grafischen Abfrage-Designer arbeiten, klicken Sie auf die Dropdownliste Befehlstyp, und überprüfen Sie die verfügbaren gespeicherten Prozeduren in der Datenquelle. Wenn Sie mit dem standardmäßigen Abfrage-Designer arbeiten und den Namen der gespeicherten Prozedur bereits kennen, die Sie verwenden möchten, geben Sie deren Namen im Abfragebereich ein.

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 an einen Berichtsparameter gebunden, 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 TableDirect

Sie können auf einfache Weise alle Spalten einer einzelnen Tabelle zurückgeben, um die Daten in einem Dataset zu definieren. Legen Sie dazu den Befehlstyp auf TableDirect fest, und wählen Sie in der Dropdownliste eine Tabelle aus. Wenn die Tabelle ein Schema für die Datenquelle aufweist, überprüfen Sie, ob das Schema im Tabellennamen enthalten ist. Wenn dies nicht der Fall ist, können Sie es eingeben.

Geben Sie z. B. im Abfragebereich unter dem Befehlstyp TableDirect den folgenden Befehl ein. Mit diesem Befehl werden sämtliche Daten aus der Tabelle Person.Contact für die AdventureWorks-Datenbank abgerufen.

Person.Contact

Klicken Sie auf der Symbolleiste auf die Schaltfläche Ausführen, um den Befehl auszuführen und die Ergebnisse im Ergebnisbereich anzuzeigen.

ms159260.note(de-de,SQL.90).gifHinweis:
TableDirect wird vom Datenquellentyp Microsoft SQL Server nicht unterstützt. Wenn Sie diesen Modus verwenden möchten, wählen Sie den Datenquellentyp OLE DB und dann den Microsoft OLE DB-Anbieter für SQL Server aus.

Verwenden von Abfrageparametern

Wenn Sie eine Abfrage mit Parametern eingeben, erstellt der Berichts-Designer beim Eingeben der Abfrage automatisch die entsprechenden Berichtsparameter in der Berichtsdefinition. 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 auf der Registerkarte Parameter des Dialogfeldes Dataset verwalten. Für Abfragen mit Parametern, die an Berichtsparameter gebunden sind, ist keine DECLARE-Anweisung erforderlich.

Obwohl Berichtsparameter automatisch aus Abfrageparametern erstellt werden, verwalten Sie die Berichtsparameter separat in der Layoutansicht.

ms159260.note(de-de,SQL.90).gifHinweis:
Wenn Sie einen Abfrageparameter umbenennen oder löschen, wird der entsprechende Berichtsparameter nicht automatisch geändert bzw. gelöscht. Sie können den Berichtsparameter mithilfe des Dialogfeldes Berichtsparameter entfernen. Weitere Informationen finden Sie unter Verwenden von Parametern in Reporting Services.

So erstellen Sie ein Dataset

  1. Wählen Sie auf der Registerkarte Daten aus der Dropdownliste Dataset die Option <Neues Dataset> aus.

  2. Wählen Sie im Dialogfeld Dataset aus der Dropdownliste Datenquelle die Option Neue Datenquelle> aus.

  3. Wählen Sie im Dialogfeld Datenquelle aus der Dropdownliste Typ die Option Microsoft SQL Server aus.

  4. Geben Sie eine Verbindungszeichenfolge an, die für die SQL Server-Datenquelle verwendet werden kann.
    Wenden Sie sich an den Datenbankadministrator, wenn Sie Verbindungsinformationen benötigen. Die folgende Verbindungszeichenfolge gibt die AdventureWorks-Beispieldatenbank auf dem lokalen Client an.

    Data Source=localhost;Initial Catalog=AdventureWorks
    
  5. Legen Sie die Anmeldeinformationen für die Datenbank im Dialogfeld Datenquelle auf der Registerkarte Anmeldeinformationen fest.

  6. Klicken Sie auf OK.

Weitere Informationen finden Sie unter Herstellen einer Verbindung mit einer Datenquelle.

Siehe auch

Aufgaben

Vorgehensweise: Erstellen eines Datasets (Berichts-Designer)

Konzepte

Definieren von Berichtsdatasets
Abfrageentwurfstools in Reporting Services
Herstellen einer Verbindung mit einer Datenquelle

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt:
  • TableDirect.
  • Unterthema: So erstellen Sie ein Dataset.
Geänderter Inhalt: