Création de procédures stockées

Toutes les procédures stockées doivent être associées à une classe CLR (Common Language Runtime) ou COM (Component Object Model) pour pouvoir être utilisées. Cette classe doit être installée sur le serveur, généralement sous la forme d'une bibliothèque de liens dynamiques (DLL) Microsoft ActiveX®, et enregistrée comme assembly sur le serveur ou dans une base de données Analysis Services.

Les procédures stockées sont enregistrées sur le serveur ou dans une base de données. Les procédures stockées enregistrées sur le serveur peuvent être appelées à partir de n'importe quel contexte de requête. Les procédures stockées enregistrées dans la base de données sont uniquement accessibles si le contexte de base de données est la base de données dans laquelle la procédure stockée est définie. Si les fonctions d'un assembly appellent les fonctions d'un autre assembly, vous devez enregistrer les deux assemblys dans le même contexte (serveur ou base de données). Pour un serveur ou une base de données MicrosoftSQL ServerAnalysis Services déployée sur un serveur, vous pouvez utiliser SQL Server Management Studio pour enregistrer un assembly. Pour un projet Analysis Services, vous pouvez utiliser le Concepteur Analysis Services pour enregistrer un assembly dans le projet.

Remarque relative à la sécuritéRemarque relative à la sécurité

Les assemblys COM peuvent présenter un risque pour la sécurité. En raison de ce risque et d'autres considérations, les assemblys COM ont été désapprouvés dans SQL Server 2008 Analysis Services (SSAS). Les assemblys COM peuvent ne pas être pris en charge dans les versions ultérieures.

Enregistrement d'un assembly de serveur

Dans l'Explorateur d'objets de SQL Server Management Studio, les assemblys de serveur sont répertoriés dans le dossier Assemblies d'une instance Analysis Services. Les assemblys de serveur peuvent contenir à la fois des assemblys .NET (CLR) et des bibliothèques COM.

Pour créer un assembly de serveur

  1. Développez l'instance Analysis Services dans l'Explorateur d'objets, cliquez avec le bouton droit sur le dossier Assemblys, puis cliquez sur Nouvel assembly. La boîte de dialogue Enregistrer l'assembly de serveurs'affiche.

  2. Pour Type, spécifiez le type d'assembly :

    • Pour une DLL en code managé (CLR), spécifiez Assembly .NET.

    • Pour une DLL en code natif (COM), spécifiez DLL COM.

  3. Dans Nom de fichier, spécifiez la DLL contenant les procédures stockées.

  4. Dans Nom de l'assembly, spécifiez le nom de l'assembly.

  5. S'il s'agit d'une version de débogage de la bibliothèque que vous allez utiliser pour déboguer les procédures stockées, activez la case à cocher Inclure les informations de débogage. Pour plus d'informations sur le débogage des procédures stockées, consultez Débogage des procédures stockées.

  6. Vous pouvez cliquer sur OK pour enregistrer l'assembly immédiatement ou cliquer dans la barre d'outils de la boîte de dialogue sur une commande du menu Script pour générer un script de l'enregistrement dans une fenêtre de requête, un fichier ou le Presse-papiers.

Une fois l'assembly de serveur enregistré, vous pouvez le configurer en cliquant dessus avec le bouton droit dans l'Explorateur d'objets, puis en cliquant sur Propriétés.

Enregistrement d'un assembly de base de données sur le serveur

Dans l'Explorateur d'objets de SQL Server Management Studio, les assemblys de base de données sont répertoriés dans le dossier Assemblies d'une base de données Analysis Services. Les assemblys de base de données peuvent contenir à la fois des assemblys .NET (CLR) et des bibliothèques COM.

Pour créer un assembly de base de données sur un serveur

  1. Développez l'instance de la base de données Analysis Services dans l'Explorateur d'objets, cliquez avec le bouton droit sur le dossier Assemblys, puis cliquez sur Nouvel assembly. La boîte de dialogue Enregistrer l'assembly de base de donnéess'affiche.

  2. Pour Type, spécifiez le type d'assembly :

    • Pour une DLL en code managé (CLR), spécifiez Assembly .NET.

    • Pour une DLL en code natif (COM), spécifiez DLL COM.

  3. Dans Nom de fichier, spécifiez la DLL contenant les procédures stockées.

  4. Dans Nom de l'assembly, spécifiez le nom de l'assembly.

  5. S'il s'agit d'une version de débogage de la bibliothèque que vous allez utiliser pour déboguer les procédures stockées, activez la case à cocher Inclure les informations de débogage. Pour plus d'informations sur le débogage des procédures stockées, consultez Débogage des procédures stockées.

  6. Vous pouvez cliquer sur OK pour enregistrer l'assembly immédiatement ou cliquer dans la barre d'outils de la boîte de dialogue sur une commande du menu Script pour générer un script de l'enregistrement dans une fenêtre de requête, un fichier ou le Presse-papiers.

Une fois l'assembly de base de données enregistré, vous pouvez le configurer en cliquant dessus avec le bouton droit dans l'Explorateur d'objets, puis en cliquant sur Propriétés.

Enregistrement d'un assembly de base de données dans un projet

Dans l'Explorateur de solutions de Business Intelligence Development Studio, les assemblys de base de données sont répertoriés dans le dossier Assemblies d'un projetAnalysis Services. Les assemblys de base de données peuvent contenir à la fois des assemblys .NET (CLR) et des bibliothèques COM.

Pour créer un assembly de base de données dans un projet Analysis Service

  1. Développez l'instance de la base de données Analysis Services dans l'Explorateur d'objets, cliquez avec le bouton droit sur le dossier Assemblys, puis cliquez sur Nouvelle référence de l'assembly. La boîte de dialogue Ajouter une référence s'affiche. L'onglet .NET de la boîte de dialogue Ajouter une référence répertorie les assemblys .NET (CLR) existants et l'onglet Projets répertorie les projets.

  2. Vous pouvez cliquer sur un composant ou un projet existant, puis sur Ajouter pour l'ajouter au projet Analysis Services. Pour ajouter une référence à une DLL COM, cliquez sur l'onglet Parcourir pour rechercher le fichier. La liste Projets et composants sélectionnés affiche le nom, le type, la version et l'emplacement de chaque composant ajouté au projet.

  3. Lorsque vous avez fini de sélectionner les composants à ajouter, cliquez sur OK pour les ajouter au projet Analysis Services.

Mise en forme du script pour un assembly

Il est relativement simple d'enregistrer un assembly .NET. Un assembly .NET est ajouté à une base de données au format binaire à l'aide du format suivant :

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