@ मिच गेहूं के सुझाव के बाद, सर्वर पर सभी डीबी के लिए @ gbn के उत्तर को चलाने के लिए यहां कुछ वर्ग है। शायद यह किसी के लिए थोड़ा सा समय लगेगा।
USE Master;
GO
IF OBJECT_ID('tempdb..#Deps') IS NOT NULL
BEGIN
DROP TABLE #Deps
END
CREATE TABLE #Deps
(
[ServerName] [VARCHAR](500) NOT NULL,
[DatabaseName] [VARCHAR](500) NOT NULL,
[SchemaName] [VARCHAR](500) NOT NULL,
[ObjectName] [VARCHAR](MAX) NULL,
[ObjectId] [INT] NOT NULL,
[ObjectType] [VARCHAR](500) NOT NULL,
[DependsOnLinkedServer] [VARCHAR](500) NOT NULL,
[definition] [VARCHAR](MAX) NULL
)
IF OBJECT_ID('tempdb..#Queries') IS NOT NULL
BEGIN
DROP TABLE #Queries
END
SELECT
REPLACE('INSERT INTO #Deps
(
[ServerName]
,[DatabaseName]
,[SchemaName]
,[ObjectName]
,[ObjectType]
,[ObjectId]
,[DependsOnLinkedServer]
,[definition]
)
SELECT
@@SERVERNAME,
''?'' AS DatabaseName,
s.name AS SchemaName,
o.name AS ObjectName,
o.type_desc AS ObjectType,
m.object_id AS ObjectId,
''' + srv.name + ''' AS DependsOnLinkedServer,
m.definition
FROM
[?].sys.sql_modules m
LEFT OUTER JOIN [?].sys.objects o
ON m.object_id = o.object_id
LEFT OUTER JOIN [?].sys.schemas s
ON o.schema_id = s.schema_id
WHERE
definition LIKE ''%' + srv.name + '%''', CHAR(13) + CHAR(10), '') AS Query
INTO
#Queries
FROM
sys.servers srv;
GO
DECLARE @Query AS VARCHAR(MAX)
DECLARE LinkedServerCursor CURSOR FAST_FORWARD
FOR
SELECT
Query
FROM
#Queries
OPEN LinkedServerCursor
FETCH NEXT FROM LinkedServerCursor INTO @Query;
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE master.sys.sp_MSforeachdb @Query
FETCH NEXT FROM LinkedServerCursor INTO @Query;
END
CLOSE LinkedServerCursor;
DEALLOCATE LinkedServerCursor;
GO
SELECT
ServerName,
DatabaseName,
ObjectName,
'[' + ServerName + '].[' + DatabaseName + '].[' + SchemaName + '].[' + ObjectName + ']' AS QualifiedObjectName,
DependsOnLinkedServer,
ObjectType
FROM
#Deps
ORDER BY
ServerName,
DatabaseName,
ObjectName
आप सर्वर पर प्रत्येक डेटाबेस के लिए कि खोज चलाने के लिए ... शायद sp_msforeachdb –
धन्यवाद का उपयोग कर, पूरी तरह से काम करना होगा, समय :) – Peuge
की बहुत बचाया यह जब तक आप एक प्रश्न के बाहर संग्रहीत है काम करेंगे SQL सर्वर (उदाहरण के लिए एक रिपोर्ट में) जो एक लिंक किए गए सर्वर का उपयोग करता है। उस स्थिति में, आपको एक ट्रेस या विस्तारित घटनाओं का सहारा लेना होगा। – PseudoToad