Est-il possible que du code T-SQL dans une session ouvre de nouvelles sessions et que le code soit exécuté dans ces autres sessions? Je suis toujours un noob avec MS SQL et je cherche des moyens de simuler plusieurs sessions en cours d'exécution, afin d'observer le verrouillage et le blocage, les conflits de ressources et l'utilisation du processeur et tout cela. Au lieu de tout faire manuellement, il serait bien de l’automatiser et de pouvoir spécifier le nombre d’autres sessions à ouvrir et le code à exécuter.
3 Réponses :
Il est possible d'ouvrir une nouvelle session temporaire activant le mode SQL CMD dans SSMS via le menu -> Requête-> Mode SQL CMD:
:CONNECT (local) SET NOCOUNT ON; SELECT SERVERPROPERTY('ServerName') AS ServerName ,SERVERPROPERTY('ProductVersion') AS ProductVersion ,SERVERPROPERTY('ProductLevel') AS ProductLevel ,SERVERPROPERTY('Edition') AS Edition ,SERVERPROPERTY('EngineEdition') AS EngineEdition; GO :CONNECT SQLServer1 SET NOCOUNT ON; SELECT SERVERPROPERTY('ServerName') AS ServerName ,SERVERPROPERTY('ProductVersion') AS ProductVersion ,SERVERPROPERTY('ProductLevel') AS ProductLevel ,SERVERPROPERTY('Edition') AS Edition ,SERVERPROPERTY('EngineEdition') AS EngineEdition GO
De cette manière, vous pouvez changer de contexte. Cependant, il n'y a toujours aucun moyen de lancer quelques sessions sortantes parallèles à partir de la même session source à l'aide de T-SQL. Vous pouvez le faire via des outils externes
Je ne sais pas comment faire cela directement sur SSMS. Peut-être créer plusieurs connexions à la même instance sur les serveurs enregistrés, puis exécuter le groupe. Cependant, il existe plusieurs applications tierces qui pourraient vous aider. Voici 2 options:
Je ne pense pas qu'il existe une manière native de faire cela dans SSMS. Vous pouvez le faire avec SSMS Boost ( https://www.ssmsboost.com/ ) en utilisant des espaces de travail ou Redgate Test SQL ( https://www.red-gate.com / products / sql-development / sql-test / index ). il y a probablement d'autres outils aussi, mais ce sont les deux que j'ai déjà utilisés.