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!
Version imprimable
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 +
Ils ne sont effectivement pas listés :cry:
Le serveur identifié par l'ID 0 est ton instance SQL, tous les autres sont les serveurs liés.Code:
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 DBCode:
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:
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.Citation:
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 ;)