Condividi tramite


Creazione di stored procedure

Tutte le stored procedure devono essere associate a una classe CLR (Common Language Runtime) o COM (Component Object Model) per poter essere utilizzate. La classe deve essere installata nel server, generalmente in forma di DLL (libreria a collegamento dinamico) di Microsoft ActiveX®, 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, mentre le stored procedure di database sono accessibili solo se il contesto del database è il database nel quale è stata definita la stored procedure. Se in un assembly sono presenti funzioni che chiamano funzioni di un assembly diverso, è necessario registrare entrambi gli assembly nello stesso contesto (server o database). Per un server o un database di MicrosoftSQL ServerAnalysis Services distribuito in un server, è possibile utilizzare 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.

Nota sulla protezioneNota sulla protezione

Gli assembly COM potrebbero porre un problema di protezione. A causa di questo rischio e di altre considerazioni, gli assembly COM sono obsoleti in SQL Server 2008 Analysis Services (SSAS) e potrebbero non essere supportati nelle versioni future.

Registrazione di un assembly server

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

Per creare un assembly server

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

  2. In Tipo specificare il tipo di assembly:

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

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

  3. In Nome file specificare la DLL che contiene le stored procedure.

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

  5. Se si tratta di un build di debug della libreria da utilizzare per eseguire il debug delle stored procedure, selezionare la casella di controllo Includi informazioni di debug. Per ulteriori informazioni sul debug delle stored procedure, vedere Debug di stored procedure.

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

Al termine della registrazione di un assembly server, è possibile configurarlo facendovi clic sopra con il pulsante destro del mouse in Esplora oggetti e quindi selezionando Proprietà.

Registrazione di un assembly database nel server

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

Per creare un assembly 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 selezionare Nuovo assembly. Verrà visualizzata la finestra di dialogo Registra assembly database.

  2. In Tipo specificare il tipo di assembly:

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

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

  3. In Nome file specificare la DLL che contiene le stored procedure.

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

  5. Se si tratta di un build di debug della libreria da utilizzare per eseguire il debug delle stored procedure, selezionare la casella di controllo Includi informazioni di debug. Per ulteriori informazioni sul debug delle stored procedure, vedere Debug di stored procedure.

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

Al termine della registrazione di un assembly database, è possibile configurarlo facendovi clic sopra con il pulsante destro del mouse in Esplora oggetti e quindi selezionando Proprietà.

Registrazione di un assembly database in un progetto

In Esplora soluzioni in Business Intelligence Development Studio gli assembly database vengono elencati nella cartella Assembly in un progetto di Analysis Services. Gli assembly database possono contenere sia assembly .NET (CLR) sia librerie COM.

Per creare un assembly database in un progetto di Analysis Services

  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 selezionare Nuovo riferimento ad assembly. Verrà visualizzata la finestra di dialogo Aggiungi riferimento. Nella scheda .NET della finestra di dialogo Aggiungi riferimento vengono elencati gli assembly .NET (CLR) esistenti, mentre nella scheda Progetti vengono elencati i progetti.

  2. È possibile fare clic su un componente o su un progetto esistente e quindi selezionare 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. Nell'elenco Progetti e componenti selezionati vengono visualizzati nome, tipo, versione e percorso di ogni componente da aggiungere al progetto.

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

Formatto dello script di un assembly

Registrare un assembly .NET è un'operazione piuttosto semplice. Per aggiungere un assembly .NET a un database in formato binario è possibile utilizzare 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>