Freigeben über


Erstellen gespeicherter 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 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 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 Analysis Services-Datenbank auf einem Server können Sie SQL Server Management Studio verwenden, um eine Assembly zu registrieren. Für ein Analysis Services-Projekt können Sie 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 waren COM-Assemblys in SQL Server 2008 Analysis Services (SSAS) 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 einer instance von 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 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 COM-DLL (Native Code) 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 auf der Symbolleiste des Dialogfelds können Sie im Menü Skript auf einen Befehl klicken, 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 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 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 auf der Symbolleiste des Dialogfelds können Sie im Menü Skript auf einen Befehl klicken, 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 mit der rechten Maustaste auf die Assembly in Objekt-Explorer klicken und dann auf Eigenschaften klicken.

Registrieren einer Datenbankassembly in einem Projekt

In Projektmappen-Explorer in SQL Server Data Tools (SSDT) werden Datenbankassemblys im Ordner Assemblys unter einem 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 Analysis Services-Datenbank in Objekt-Explorer, klicken Sie mit der rechten Maustaste auf den Ordner Assemblys, und klicken Sie dann auf Neue Assemblyreferenz. 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 aufgelistet werden.

  2. Sie können auf eine vorhandene Komponente oder ein vorhandenes Projekt klicken und dann auf Hinzufügen klicken, um es dem Analysis Services-Projekt hinzuzufügen. Um einen Verweis auf eine COM-DLL hinzuzufügen, klicken Sie auf die Registerkarte Durchsuchen , um die Datei zu finden. In der Liste Ausgewählte Projekte und Komponenten werden Name, Typ, Version und 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 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