J'ai créé une table dans l'environnement de développement à des fins de test et il y a peu de sp's qui font référence à cette table. Je dois maintenant supprimer cette table et identifier tous les serveurs qui y font référence. J'ai du mal à trouver la liste de tous les serveurs. Veuillez suggérer une requête en supposant que le nom de la table est 'x' ; et que la base de données est sql server 2005.
SELECT Name
FROM sys.procedures
WHERE OBJECT_DEFINITION(OBJECT_ID) LIKE '%TableNameOrWhatever%'
BTW -- voici une ressource pratique pour ce type de question : [Interroger le catalogue système de SQL Server FAQ][1]
[1] : http://msdn.microsoft.com/en-us/library/ms345522%28v=SQL.90%29.aspx
Une méthode sans requête serait d'utiliser le Sql Server Management Studio.
Localisez la table, faites un clic droit et choisissez "View dependencies".
EDIT
Mais, comme l'ont dit les commentateurs, ce n'est pas très fiable.
SELECT
o.name
FROM
sys.sql_modules sm
INNER JOIN sys.objects o ON
o.object_id = sm.object_id
WHERE
sm.definition LIKE '%<table name>%'
Gardez à l'esprit que cette méthode permet également de trouver des SP dont le nom de table se trouve dans les commentaires ou dont le nom de table est une sous-chaîne d'un autre nom de table utilisé. Par exemple, si vous avez des tables nommées "test" ; et "test_2" ; et que vous essayez de rechercher des PS avec "test" ; alors vous obtiendrez des résultats pour les deux.