Last active
December 15, 2015 11:57
-
-
Save oscarandreu/0ffa704f9c13dd8830ff to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE #LINKED | |
( | |
SRV_NAME nvarchar(100) | |
,SRV_PROVIDERNAME nvarchar(100) | |
,SRV_PRODUCT nvarchar(100) | |
,SRV_DATASOURCE nvarchar(100) | |
,SRV_PROVIDERSTRING nvarchar(100) | |
,SRV_LOCATION nvarchar(100) | |
,SRV_CAT nvarchar(100) | |
) | |
INSERT INTO #LINKED exec sp_linkedservers | |
DELETE FROM #LINKED WHERE SRV_NAME = @@SERVERNAME OR SRV_NAME = 'repl_distributor' | |
DECLARE @getid CURSOR | |
DECLARE @name NVARCHAR(100) | |
DECLARE @sqlCommand varchar(1000) | |
SET @getid = CURSOR FOR | |
SELECT name FROM master.dbo.sysdatabases | |
CREATE TABLE #RESULTS | |
( | |
[DataBase] nvarchar(100) | |
,LinkedServer nvarchar(100) | |
,ObjectName nvarchar(100) | |
,[ObjectType] nvarchar(10) | |
,Command nvarchar(max) NULL | |
,Step int NULL | |
,[Enabled] int | |
,Id nvarchar(50) | |
) | |
OPEN @getid | |
FETCH NEXT | |
FROM @getid INTO @name --@id, @name | |
WHILE @@FETCH_STATUS = 0 | |
BEGIN | |
SET @sqlCommand = 'USE '+ @name + | |
' INSERT INTO #RESULTS '+ | |
' SELECT ''' + | |
@name +''' AS [Database] | |
, L.SRV_NAME as [LinkedServer] | |
, object_name(SC.id) as [ObjectName] | |
, SO.type as [ObjectType] | |
, SC.[text] as [Command] | |
, NULL | |
, 1 | |
, SO.id | |
FROM syscomments SC WITH(NOLOCK) | |
JOIN sysobjects SO WITH(NOLOCK) ON SC.id = SO.id | |
JOIN #LINKED l ON SC.[text] LIKE ''%'' + L.SRV_NAME + ''%'' COLLATE DATABASE_DEFAULT ' | |
EXEC (@sqlCommand) | |
FETCH NEXT | |
FROM @getid INTO @name | |
END | |
CLOSE @getid | |
DEALLOCATE @getid | |
USE [msdb] | |
GO | |
INSERT INTO #RESULTS | |
SELECT | |
'msdb' | |
, L.SRV_NAME as [LinkedServer] | |
, SJ.name as JobName | |
, 'J' | |
, SJS.command as Command | |
, SJS.step_id as [Step Id] | |
, SJ.enabled as [Enabled] | |
, SJ.job_id as [Job Id] | |
FROM dbo.sysjobs SJ | |
JOIN dbo.sysjobsteps SJS ON SJS.job_id = SJ.job_id | |
JOIN #LINKED L on SJS.command like '%' + L.SRV_NAME + '%' | |
INSERT INTO #RESULTS | |
SELECT | |
'msdb' | |
, L.SRV_NAME as [LinkedServer] | |
, SJ.name as JobName | |
, 'J' | |
, NULL as Command | |
, NULL as [Step Id] | |
, SJ.enabled as [Enabled] | |
, SJ.job_id as [Job Id] | |
FROM dbo.sysjobs SJ | |
JOIN master.dbo.sysservers s ON s.srvid = SJ.originating_server_id | |
JOIN #LINKED L on s.srvname = L.SRV_NAME | |
SELECT * FROM #RESULTS | |
--SELECT * FROM #LINKED L LEFT JOIN #RESULTS R ON L.SRV_NAME = R.LinkedServer | |
--WHERE R.LinkedServer IS NULL | |
--exec sp_helpdb | |
GO | |
drop table #RESULTS | |
drop table #LINKED | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment