Erstellen gespeicherter Prozeduren

Gilt für: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

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 auf dem Server installiert werden – in der Regel in Form einer Microsoft ActiveX-DLL® (Dynamic Link Library) – und als Assembly auf dem Server oder in einer SQL Server Analysis Services-Datenbank registriert werden.

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 SQL Server Analysis Services-Datenbank auf einem Server können Sie SQL Server Management Studio verwenden, um eine Assembly zu registrieren. Für ein SQL Server Analysis Services-Projekt können Sie SQL Server Analysis Services Designer verwenden, um eine Assembly im Projekt zu registrieren.

Wichtig

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

Registrieren einer Serverassembly

In Objekt-Explorer in SQL Server Management Studio werden Serverassemblys im Ordner Assemblys unter einem instance SQL Server Analysis Services aufgeführt. Serverassemblys können sowohl .NET-Assemblys (CLR) als auch COM-Bibliotheken enthalten.

So erstellen Sie eine Serverassembly

  1. Erweitern Sie die instance von SQL Server Analysis Services in Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie dann auf Neue Assembly. Daraufhin wird das Dialogfeld Serverassembly registrieren angezeigt.

  2. Geben Sie für Type den Typ der Assembly an:

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

    • Geben Sie für eine DLL für nativen Code (COM) COM DLL an.

  3. Geben Sie unter Dateiname die DLL an, die die gespeicherten Prozeduren enthält.

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

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

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

Nachdem Sie eine Serverassembly registriert haben, können Sie sie konfigurieren, indem Sie in Objekt-Explorer mit der rechten Maustaste auf die Assembly klicken und dann auf Eigenschaften klicken.

Registrieren einer Datenbankassembly auf dem Server

In Objekt-Explorer in SQL Server Management Studio werden Datenbankassemblys im Ordner Assemblys unter einer SQL Server Analysis Services-Datenbank aufgeführt. Datenbankassemblys können sowohl .NET-Assemblys (CLR) als auch COM-Bibliotheken enthalten.

So erstellen Sie eine Datenbankassembly auf einem Server

  1. Erweitern Sie die instance der SQL Server Analysis Services-Datenbank in Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie dann auf Neue Assembly. Daraufhin wird das Dialogfeld Datenbankassembly registrieren angezeigt.

  2. Geben Sie für Type 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 unter Dateiname die DLL an, die die gespeicherten Prozeduren enthält.

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

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

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

Nachdem Sie eine Datenbankassembly registriert haben, können Sie sie konfigurieren, indem Sie in Objekt-Explorer mit der rechten Maustaste auf die Assembly klicken und dann auf Eigenschaften klicken.

Registrieren einer Datenbankassembly in einem Projekt

In Projektmappen-Explorer in SQL Server Data Tools werden Datenbankassemblys im Ordner Assemblys unter einem SQL Server Analysis Services-Projekt aufgeführt. 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 instance der SQL Server Analysis Services-Datenbank in Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie dann auf Neuer Assemblyverweis. Daraufhin wird das Dialogfeld Verweis hinzufügen angezeigt. Auf der Registerkarte .NET des Dialogfelds Verweis hinzufügen werden vorhandene .NET-Assemblys (CLR) aufgelistet, während auf der Registerkarte Projekte Projekte aufgeführt sind.

  2. Sie können auf eine vorhandene Komponente oder ein vorhandenes Projekt klicken und dann auf Hinzufügen klicken, um es dem SQL Server Analysis Services-Projekt hinzuzufügen. Um einen Verweis auf eine COM-DLL hinzuzufügen, 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 jede Komponente angezeigt, die Sie dem Projekt hinzufügen.

  3. Wenn Sie mit der Auswahl der hinzuzufügenden Komponenten fertig sind, klicken Sie auf OK, um sie dem SQL Server 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>  

Weitere Informationen

Verwaltung von mehrdimensionalen Modellassemblys
Definieren gespeicherter Prozeduren