Bonjour,
Sur un serveur SQL, plusieurs serveurs liés sont listés.
J'aimerais savoir si il y a une possibilités de trouver où sont utilisés ces serveurs liés.
Existe-t-il une fonction de recherche pour cela?
Merci d'avance!
Bonjour,
Sur un serveur SQL, plusieurs serveurs liés sont listés.
J'aimerais savoir si il y a une possibilités de trouver où sont utilisés ces serveurs liés.
Existe-t-il une fonction de recherche pour cela?
Merci d'avance!
Jetez un coup d'œil dans sysdepends mais cela m'étonnerais que les serveurs y figurent !
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Le serveur identifié par l'ID 0 est ton instance SQL, tous les autres sont les serveurs liés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * from master.sys.servers
Merci pour ta réponse, mais ce que je souhaiterais en fait c'est de savoir pourquoi ces serveurs sont liés et où sont-ils utilisés (stored proc, etc.)
A la question de savoir pourquoi ces serveurs sont liés, seule la personne qui les a créés pourra te répondre. Si elle n'est plus là, il faut donc se débrouiller ! (est-ce que ces créations ont été documentées ?)
Il existe des moyens de détections :
1. Si tu utilises des vues et procédures stockées, c'est plus facile :
Si ton instance SQL contient plusieurs DB, il faudra procéder pour toutes les DB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT object_name(object_id), type_desc FROM sys.sql_modules WHERE definition like '%NomDuServeurLie%'
2. Si tu utilises du SQL dynamique (c'est-à-dire du code SQL directement dans le code application), c'est un peu plus compliqué.
Il faut tracer le serveur avec SQL Profiler afin d'enregistrer toutes les requêtes exécutée sur ton serveur. La table de trace contient une colonne TextData qui contient le code SQL exécuté par le serveur.
Dans ce cas, essaie ce code :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM MaTrace WHERE TextData LIKE '%NomDuServeurLie%'
pour trouver un text dans une procedure stockée tu peux utiliser :
select * from syscomments where text like '%NomDuServeur%'
Louis Malta
Bonjour,
Exact mais attention, syscomments ne contient "que" les 4000 premiers caractère de la définition de vos procédures stockées, et qui a été conservée sous SQL Server 2005 à des fins de compatibilité avec SQL Server 2000 et les versions antécédentes de SQL Server.pour trouver un text dans une procedure stockée tu peux utiliser :
select * from syscomments where text like '%NomDuServeur%'
la vue sys.sql_modules contient tous les caractères de la définition de vos objets![]()
Partager