Outils pour utilisateurs

Outils du site


bases_de_donnees:sqlserver:clr

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bases_de_donnees:sqlserver:clr [2016/09/14 16:03] – [Débogguer le CLR] sgariepybases_de_donnees:sqlserver:clr [2022/02/02 00:42] (Version actuelle) – modification externe 127.0.0.1
Ligne 41: Ligne 41:
 GO GO
 </code> </code>
 +
 +
 +==== Permission ====
 +
 +La permission nécessaire pour créer un assembly:
 +
 +<code sql>
 +USE DatabaseName
 +GO
 +GRANT CREATE ASSEMBLY TO [domain\user]
 +</code>
 +===== ALTER =====
 +
 +Pour mettre à jour un assembly, on est pas obligé de supprimer la procédure stockée qui appelle l'assembly ni l'assembly lui-même, on peut juste faire un ''ALTER''.
 +
 +<code sql>
 +ALTER ASSEMBLY <assemblyname> FROM 'c:\temp\myprocs.dll'
 +</code>
 +
  
  
Ligne 51: Ligne 70:
  
 Il peut y avoir des dépendances sur les assemblies.  Il suffit d'aller dans SSMS et aller dans **Programmabilité** sous la base de données.  On fait un clic-droit sur l'assembly qui nous intéresse et choisir **Afficher les dépendances**. Il peut y avoir des dépendances sur les assemblies.  Il suffit d'aller dans SSMS et aller dans **Programmabilité** sous la base de données.  On fait un clic-droit sur l'assembly qui nous intéresse et choisir **Afficher les dépendances**.
 +
 +
 +
 +
  
 ====== Débogguer le CLR ====== ====== Débogguer le CLR ======
 +
 +^ Note | Testé avec **Visual Studio 2013 Professional** et **SQL Server 2014**.  |
  
 Ayant un projet SQL Database dans la solution de Visual Studio: Ayant un projet SQL Database dans la solution de Visual Studio:
  
  
 +
 +  - Démarrer Visual Studio en tant qu'administrateur.
   - Ajouter un répertoire **Test Scripts** dans le projet de base de données.   - Ajouter un répertoire **Test Scripts** dans le projet de base de données.
   - Faire un clic-droit et faire **Add** -> **Script...** et choisir **Script (Not in Build)**.   - Faire un clic-droit et faire **Add** -> **Script...** et choisir **Script (Not in Build)**.
Ligne 62: Ligne 89:
   - Dans **SQL Server Object Explorer**, ajouter le serveur auquel on veut se connecter.   - Dans **SQL Server Object Explorer**, ajouter le serveur auquel on veut se connecter.
   - Faire un clic-droit sur le serveur ajouté et sélectionner **Application Debugging** et **Allow SQL/CLR Debugging**.   - Faire un clic-droit sur le serveur ajouté et sélectionner **Application Debugging** et **Allow SQL/CLR Debugging**.
-  - +  - Dans **Solution Explorer**, aller dans les propriétés du projet de base de données. 
 +  - Dans l'onglet **Project Settings**, s'assurer que le **Target** est correctement configuré (dans notre cas c'est //SQL Server 2014//). 
 +  - Cliquer sur le bouton **Database Settings...** et s'assurer que la //collation// est correcte. 
 +  - Dans l'onglet **SQLCLR** s'assurer que le **Target Framework** et **Permission Level** sont corrects. 
 +  - Dans l'onglet **Build** s'assurer que le répertoire est accessible à l'instance de SQL Server. 
 +  - Dans l'onglet **Debug**, sélectionner **Startup script** et spécifier le script de test créé plus tôt. 
 +  - Configurer le **Target Connection String**. 
 +  - Une fois ceci terminé s'assurer de faire un **Clean** et un **Build** du projet (ou de la solution). 
 +  - Déployer le code CLR sur le serveur SQL (dans mon cas j'ai utilisé le **Schema Compare** et utilisé l'option **Update**). 
 +  - Ajouter un point d'arrêt dans le code et faire **DEBUG** -> **Start Debugging**.  L'exécution s'arrête dans le script de test à la première ligne. 
 + 
 +===== Troubleshooting ===== 
 + 
 +==== Permissions ==== 
 + 
 + 
  
 +  * S'il y a l'erreur //Unable to debug .NET code.  Could not attach to SQL Server process on 'computer_name'.//, il faut démarrer Visual Studio en tant qu'administrateur Windows.
 +  * //EXTERNAL ACCESS ASSEMBLY permission was denied on object 'server', database 'master'.// -> Pour régler ceci on peut ajouter le rôle **sysadmin** à l'utilisateur SQL.
  
 ====== Sources ====== ====== Sources ======
bases_de_donnees/sqlserver/clr.1473861829.txt.gz · Dernière modification : 2022/02/02 00:43 (modification externe)