Intégrer .Net dans Sql Server 2005
[25 mn de lecture - paru le 10/20/2005 9:54:01 PM - Public : Confirmé]
|
   
|
Auteur
2. Créer une procédure stockée avec Visual Studio 2005
2.1. Créer une procédure stockée
Choisissez dans l'Explorer de solution "Stored Procedure"

Visual studio 2005 vous génère directement un class partial StoredProcedures. Ainsi que l'attribut [Microsoft.SqlServer.Server.SqlProcedure] qui va permettre à SqlServer 2005 de reconnaître que c'est une procédure stockée.
Pas besoin d'ouvrir une connection car vous serez connecté au moment de l'exécution de votre procédure.
Exemple simple
using System; using System.Data; using System.Data.Sql; using System.Data.SqlTypes; using Microsoft.SqlServer.Server;
public partial class StoredProcedures {
[Microsoft.SqlServer.Server.SqlProcedure] public static void MaProcedureStokee() { // Put your code here SqlContext.Pipe.Send("Hello Word !!!"); } }; |
2.2. Déployer votre procédure sur Sql Server 2005
Compilez votre projet. Voilà votre DLL est crée.
Ensuite vous devez déployer votre DLL,
Clique droit sur le projet > Deploy

Basculer dans Sql Server Management Studio (anciennement entreprise manager)
Faites un Refresh de votre base de données

Dans l'arborescence de votre base de données : Programmabilty >> Assemblies >> SqlServeurProjectSupinfo. La DLL s'est bien déployée.
Dans le répertoire : Programmabily >> Stored Procedures >> dbo.MaProcedureStokee vous pouvez voir votre procédure stokée.
Ce n'est pas du Transact SQL et si vous souhaitez la modifier vous devez modifier votre code dans Visual Studio 2005.
Pour exécuter la procédure vous devez créer une nouvelle solution dans SQL server 2005.
- Connections - Créer un nouveau fichier de requête
2.3. Activer l'intégration de la CLR dans SQL Server 2005
Si vous avez le message :
Msg 6263, Level 16, State 1, Line 1 Execution of user code in the .NET Framework is disabled. Use sp_configure "clr enabled" to enable execution of user code in the .NET Framework.
à l'excécution de votre procédure stockée, c'est que le Frame work .NET2 est désactivé par défaut dans Sql Server 2005.
Vous devez allez dans Sql server 2005 Surface Area Configuratoion >> Surface Area Configuration for Features.
Allez dans DataBase Engine >> CLR Intégration et cocher Enable CLR Integration, puis Appliquer.


Vous pouvez maintenant exécuter votre procédure stockée.
2.4. Sécurité et permissions d'exécution des assemblies
Il faut être vigilant par défaut vous ne pouvez pas exécuter des assemblies dans SQL Server 2005 qui font autre chose que des actions liées à la base de données.
Par exemple si vous souhaitez créer un trigger qui créer un fichier de loggues sur votre serveur à chaque fois que l'on supprime un utilisateur dans la base de données, qu'il stocke l'heure et la date de suppression et qu'en plus on supprime le compte directement dans Active Directory. Alors vous devez aller dans les propriétés de votre projet >> dans DataBase est accorder les permissions External.
Vous avez le choix entre 3 niveaux : - Safe : mode sécurisé aucun accès hormis à SQL Server 2005 - External : l'assembly aura accès à des sources externes comme l'accès au fichier, au registe, au réseaux... - Unsafe : mode le moins sécurisé qui donne le full Access à la CLR dans Sql Server 2005

|