Condividi tramite


Creazione delle procedure memorizzate

Tutte le stored procedure devono essere associate a una classe COMMON Language Runtime (CLR) o COM (Component Object Model) per poter essere utilizzata. La classe deve essere installata nel server, in genere sotto forma di libreria a collegamento dinamico Microsoft ActiveX® (DLL) e registrata come assembly nel server o in un database di Analysis Services.

Le stored procedure vengono registrate in un server o in un database. Le stored procedure del server possono essere chiamate da qualsiasi contesto di query. È possibile accedere alle stored procedure di database solo se il contesto del database è il database in cui è definita la stored procedure. Se le funzioni in una chiamata di assembly in un assembly diverso, è necessario registrare entrambi gli assembly nello stesso contesto (server o database). Per un server o un database di Microsoft SQL Server Analysis Services distribuito in un server, è possibile usare SQL Server Management Studio per registrare un assembly. Per un progetto di Analysis Services, è possibile utilizzare Progettazione Analysis Services per registrare un assembly nel progetto.

Importante

Gli assembly COM possono rappresentare un rischio per la sicurezza. A causa di questo rischio e altre considerazioni, gli assembly COM sono stati deprecati in SQL Server 2008 Analysis Services (SSAS). Gli assembly COM potrebbero non essere supportati nelle versioni future.

Registrazione di un assembly del server

In Esplora oggetti in SQL Server Management Studio gli assembly del server sono elencati nella cartella Assembly in un'istanza di Analysis Services. Gli assembly server possono contenere assembly .NET (CLR) e librerie COM.

Per creare un assembly del server

  1. Espandere l'istanza di Analysis Services in Esplora oggetti, fare clic con il pulsante destro del mouse sulla cartella Assembly e quindi scegliere Nuovo assembly. Verrà visualizzata la finestra di dialogo Registra assembly server .

  2. Per Tipo specificare il tipo di assembly:

    • Per una DLL con codice gestito (CLR), specificare assembly .NET.

    • Per una DLL COM (Native Code), specificare LA DLL COM.

  3. Per Nome file specificare la DLL contenente le stored procedure.

  4. Per Nome assembly specificare un nome per l'assembly.

  5. Se si tratta di una build di debug della libreria che si intende usare per eseguire il debug delle stored procedure, selezionare la casella di controllo Includi informazioni di debug . Per altre informazioni sul debug di stored procedure, vedere Debug di stored procedure.

  6. È possibile fare clic su OK per registrare immediatamente l'assembly oppure sulla barra degli strumenti della finestra di dialogo è possibile fare clic su un comando dal menu Script per creare script dell'azione di registrazione in una finestra di query, in un file o negli Appunti.

Dopo aver registrato un assembly del server, è possibile configurarlo facendo clic con il pulsante destro del mouse sull'assembly in Esplora oggetti e quindi scegliendo Proprietà.

Registrazione di un assembly di database nel server

In Esplora oggetti in SQL Server Management Studio gli assembly di database sono elencati nella cartella Assembly in un database di Analysis Services. Gli assembly di database possono contenere assembly .NET (CLR) e librerie COM.

Per creare un assembly di database in un server

  1. Espandere l'istanza del database di Analysis Services in Esplora oggetti, fare clic con il pulsante destro del mouse sulla cartella Assembly e quindi scegliere Nuovo assembly. Verrà visualizzata la finestra di dialogo Registra assembly di database .

  2. Per Tipo specificare il tipo di assembly:

    • Per una DLL con codice gestito (CLR), specificare assembly .NET.

    • Per una DLL di codice nativo (COM), specificare LA DLL COM.

  3. Per Nome file specificare la DLL contenente le stored procedure.

  4. Per Nome assembly specificare un nome per l'assembly.

  5. Se si tratta di una build di debug della libreria che si intende usare per eseguire il debug delle stored procedure, selezionare la casella di controllo Includi informazioni di debug . Per altre informazioni sul debug di stored procedure, vedere Debug di stored procedure.

  6. È possibile fare clic su OK per registrare immediatamente l'assembly oppure sulla barra degli strumenti della finestra di dialogo è possibile fare clic su un comando dal menu Script per creare script dell'azione di registrazione in una finestra di query, in un file o negli Appunti.

Dopo aver registrato un assembly di database, è possibile configurarlo facendo clic con il pulsante destro del mouse sull'assembly in Esplora oggetti e quindi scegliendo Proprietà.

Registrazione di un assembly di database in un progetto

In Esplora soluzioni in SQL Server Data Tools (SSDT), gli assembly di database sono elencati nella cartella Assembly in un progetto di Analysis Services. Gli assembly di database possono contenere assembly .NET (CLR) e librerie COM.

Per creare un assembly di database in un progetto di Analysis Service

  1. Espandere l'istanza del database di Analysis Services in Esplora oggetti, fare clic con il pulsante destro del mouse sulla cartella Assembly e quindi scegliere Nuovo riferimento assembly. Verrà visualizzata la finestra di dialogo Aggiungi riferimento . Nella scheda .NET della finestra di dialogo Aggiungi riferimento sono elencati gli assembly .NET (CLR) esistenti, mentre nella scheda Progetti sono elencati i progetti.

  2. È possibile fare clic su un componente o un progetto esistente e quindi su Aggiungi per aggiungerlo al progetto di Analysis Services. Per aggiungere un riferimento a una DLL COM, fare clic sulla scheda Sfoglia per trovare il file. L'elenco Progetti e componenti selezionati mostra il nome, il tipo, la versione e il percorso per ogni componente che si aggiunge al progetto.

  3. Al termine della selezione dei componenti da aggiungere, fare clic su OK per aggiungerli al progetto di Analysis Services.

Formato script per un assembly

La registrazione di un assembly .NET è piuttosto semplice. Un assembly .NET viene aggiunto a un database in formato binario usando il formato seguente:

<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>  

Vedere anche

Gestione degli assembly di modelli multidimensionali
Definire procedure memorizzate