Freigeben über


Erstellen von gespeicherten Prozeduren

Alle gespeicherten Prozeduren müssen mit einer CLR-Klasse (Common Language Runtime) oder einer COM-Klasse (Component Object Model) verknüpft sein, damit sie verwendet werden können. Die Klasse muss – normalerweise in Form einer Microsoft ActiveX®-DLL (Dynamic Link Library) – auf dem Server installiert sein. Außerdem muss Sie auf dem Server oder in einer Analysis Services-Datenbank als Assembly registriert sein.

Gespeicherte Prozeduren sind auf einem Server oder in einer Datenbank registriert. Gespeicherte Serverprozeduren können aus einem beliebigen Abfragekontext aufgerufen werden. Der Zugriff auf gespeicherte Datenbankprozeduren ist nur möglich, wenn der Datenbankkontext die Datenbank ist, unter der die gespeicherte Prozedur definiert ist. Wenn Funktionen in einer Assembly die Funktionen in einer anderen Assembly aufrufen, müssen Sie beide Assemblys in demselben Kontext registrieren (Server oder Datenbank). Für einen Server oder eine bereitgestellte Microsoft SQL Server Analysis Services-Datenbank auf einem Server können Sie eine Assembly mithilfe von SQL Server Management Studio registrieren. Für ein Analysis Services-Projekt können Sie eine Assembly mithilfe von Analysis Services-Designer im Projekt registrieren.

SicherheitshinweisSicherheitshinweis

COM-Assemblys können ein Sicherheitsrisiko darstellen. Aufgrund dieses Risikos und anderer Überlegungen wurden COM-Assemblys in SQL Server 2008 Analysis Services (SSAS) als veraltet markiert. COM-Assemblys werden in zukünftigen Versionen möglicherweise nicht mehr unterstützt.

Registrieren einer Serverassembly

Im Objekt-Explorer von SQL Server Management Studio werden Serverassemblys im Ordner Assemblys unter einer Instanz von Analysis Services aufgelistet. Serverassemblys können sowohl .NET-Assemblys (CLR) als auch COM-Bibliotheken enthalten.

So erstellen Sie eine Serverassembly

  1. Erweitern Sie die Instanz von Analysis Services im Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie anschließend auf Neue Assembly. Das Dialogfeld Serverassembly registrieren wird angezeigt.

  2. Geben Sie im Feld Typ den Typ der Assembly an:

    • Für eine DLL mit verwaltetem Code (CLR) geben Sie .NET-Assembly an.

    • Für eine DLL mit systemeigenem Code (COM) geben Sie COM-DLL an.

  3. Geben Sie im Feld Dateiname die DLL an, in der die gespeicherten Prozeduren enthalten sind.

  4. Geben Sie im Feld Assemblyname einen Namen für die Assembly an.

  5. Wenn es sich hierbei um eine Debugversion der Bibliothek handelt, die Sie zum Debuggen von gespeicherten Prozeduren verwenden möchten, aktivieren Sie das Kontrollkästchen Debuginformationen einschließen. Weitere Informationen zum Debuggen von gespeicherten Prozeduren finden Sie unter Debuggen gespeicherter Prozeduren.

  6. Sie können auf OK klicken, um die Assembly sofort zu registrieren. Oder Sie können auf der Symbolleiste des Dialogfelds im Menü Skript auf einen Befehl klicken, um für die Registrierungsaktion ein Skript in einem Abfragefenster, einer Datei oder der Zwischenablage zu erstellen.

Nach dem Registrieren einer Serverassembly können Sie sie konfigurieren, indem Sie im Objekt-Explorer mit der rechten Maustaste auf die Assembly und anschließend auf Eigenschaften klicken.

Registrieren einer Datenbankassembly auf dem Server

Im Objekt-Explorer von SQL Server Management Studio werden Datenbankassemblys im Ordner Assemblys unter einer Analysis Services-Datenbank aufgelistet. Datenbankassemblys können sowohl .NET-Assemblys (CLR) als auch COM-Bibliotheken enthalten.

So erstellen Sie eine Datenbankassembly auf einem Server

  1. Erweitern Sie die Instanz der Analysis Services-Datenbank im Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie anschließend auf Neue Assembly. Das Dialogfeld Datenbankassembly registrieren wird angezeigt.

  2. Geben Sie im Feld Typ den Typ der Assembly an:

    • Für eine DLL mit verwaltetem Code (CLR) geben Sie .NET-Assembly an.

    • Für eine DLL mit systemeigenem Code (COM) geben Sie COM-DLL an.

  3. Geben Sie im Feld Dateiname die DLL an, in der die gespeicherten Prozeduren enthalten sind.

  4. Geben Sie im Feld Assemblyname einen Namen für die Assembly an.

  5. Wenn es sich hierbei um eine Debugversion der Bibliothek handelt, die Sie zum Debuggen von gespeicherten Prozeduren verwenden möchten, aktivieren Sie das Kontrollkästchen Debuginformationen einschließen. Weitere Informationen zum Debuggen von gespeicherten Prozeduren finden Sie unter Debuggen gespeicherter Prozeduren.

  6. Sie können auf OK klicken, um die Assembly sofort zu registrieren. Oder Sie können auf der Symbolleiste des Dialogfelds im Menü Skript auf einen Befehl klicken, um für die Registrierungsaktion ein Skript in einem Abfragefenster, einer Datei oder der Zwischenablage zu erstellen.

Nach dem Registrieren einer Datenbankassembly können Sie sie konfigurieren, indem Sie im Objekt-Explorer mit der rechten Maustaste auf die Assembly klicken und anschließend auf Eigenschaften klicken.

Registrieren einer Datenbankassembly in einem Projekt

Im Projektmappen-Explorer von Business Intelligence Development Studio werden Datenbankassemblys im Ordner Assemblys unter einem Analysis Services-Projekt aufgelistet. Datenbankassemblys können sowohl .NET-Assemblys (CLR) als auch COM-Bibliotheken enthalten.

So erstellen Sie eine Datenbankassembly in einem Analysis Services-Projekt

  1. Erweitern Sie die Instanz der Analysis Services-Datenbank im Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie anschließend auf Neuer Assemblyverweis. Das Dialogfeld Verweis hinzufügen wird angezeigt. Auf der Registerkarte .NET des Dialogfelds Verweis hinzufügen werden die vorhandenen .NET-Assemblys (CLR) aufgelistet. Auf der Registerkarte Projekte werden die Projekte aufgelistet.

  2. Sie können auf eine vorhandene Komponente oder ein vorhandenes Projekt und anschließend auf Hinzufügen klicken, um dem Analysis Services-Projekt die Komponente oder das Projekt hinzuzufügen. Zum Hinzufügen eines Verweises auf eine COM-DLL klicken Sie auf die Registerkarte Durchsuchen, um die Datei zu suchen. In der Liste Ausgewählte Projekte und Komponenten werden der Name, der Typ, die Version und der Speicherort für die einzelnen Komponenten angezeigt, die Sie dem Projekt hinzufügen.

  3. Wenn Sie alle hinzuzufügenden Komponenten ausgewählt haben, klicken Sie auf OK, um sie dem Analysis Services-Projekt hinzuzufügen.

Skriptformat für eine Assembly

Das Registrieren einer .NET-Assembly ist ein relativ einfacher Vorgang. Eine .NET-Assembly wird im Binärformat einer Datenbank mithilfe des folgenden Formats hinzugefügt:

<Create>
   <ObjectDefinition>
      <Assembly>
         <Files>
            <File>
               <Name>filename</Name>
               <Type>filetype</Type>
               <Data>
                  <Block>binarydatablock</Block>
                  <Block>binarydatablock</Block>
                  ...
               </Data>
            </File>
         </Files>
         <PermissionSet>PermissionSet</PermissionSet>
      </Assembly>
   <ObjectDefinition>
</Create>