Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
DB Engine
SQL ServerMSDESQL Server CE
Services
Analysis (Data Mining)Analysis (OLAP)DTSIntegration ServicesNotification ServicesReporting Services
Programming
CLRConnectivitySQLXML
Other Technologies
ClusteringEnglish QueryFull-Text SearchReplicationService Broker
General
Data WarehousingPerformanceSecuritySetupSQL Server ToolsOther SQL Server Topics
DirectoryUser Groups
Related Topics
MS AccessOther DB ProductsMS Server Products.NET DevelopmentVB DevelopmentJava DevelopmentMore Topics ...

SQL Server Forum / DB Engine / SQL Server / July 2008

Tip: Looking for answers? Try searching our database.

Migrate Linked Server

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
CEduardo - 22 Jul 2008 20:21 GMT
How to transfer linked server, include remote login and password, from SQL
Server 2000 to SQL Server 2005?
TIA
Att
Carlos Eduardo
David Hay - 22 Jul 2008 21:05 GMT
On Jul 22, 3:21 pm, CEduardo <CEdua...@discussions.microsoft.com>
wrote:
> How to transfer linked server, include remote login and password, from SQL
> Server 2000 to SQL Server 2005?
> TIA
> Att
> Carlos Eduardo

I'm not sure if this will work for 2005, but this scripts out linked
servers.  Run it in QA and set the output as text.  You can then copy/
paste into SQL 2005 and run.  Note all remote passwords will need to
be known, and manually entered.

Good Luck!

David Hay

use master
SET NOCOUNT ON
DECLARE @this_server VARCHAR(255),
 @server_ct INT,
 @server VARCHAR(255),
    @srvproduct VARCHAR(255),
    @provider VARCHAR(255),
    @datasrc VARCHAR(255),
    @location VARCHAR(255),
    @provstr VARCHAR(255),
    @catalog VARCHAR(255),
 @rpc INT,
 @pub INT,
 @sub INT,
 @dist INT,
 @dpub INT,
 @rpcout INT,
 @dataaccess INT,
 @collationcompatible INT,
 @system INT,
 @userremotecollation INT,
 @lazyschemavalidation INT,
 @collation VARCHAR(255)

CREATE TABLE #outputLog(
  rowId  INT IDENTITY(1, 1),
  outputData VARCHAR(1000))

CREATE TABLE #srvLogin(
  rowId  INT IDENTITY(1, 1),
  linkedServer VARCHAR(255),
  localLogin VARCHAR(255),
  isSelfMapping INT,
  remoteLogin VARCHAR(255))

SELECT @this_server = srvname FROM sysservers WHERE srvid = 0
SELECT @server_ct = 1

WHILE @server_ct <= (SELECT max(srvid) FROM sysservers)
BEGIN
select
 @server = srvname,
    @srvproduct = srvproduct,
    @provider = CASE WHEN srvproduct = 'SQL Server' THEN NULL ELSE
providername END,
    @datasrc = CASE WHEN srvproduct = 'SQL Server' THEN NULL ELSE
datasource END,
    @location = CASE WHEN srvproduct = 'SQL Server' THEN NULL ELSE
location END,
    @provstr = CASE WHEN srvproduct = 'SQL Server' THEN NULL ELSE
providerstring END,
    @catalog =  CASE WHEN srvproduct = 'SQL Server' THEN NULL ELSE
catalog END,
 @rpc = rpc,
 @pub = pub,
 @sub = sub,
 @dist = dist,
 @dpub = dpub,
 @rpcout = rpcout,
 @dataaccess = dataaccess,
 @collationcompatible = collationcompatible,
 @system = system,
 @userremotecollation = useremotecollation,
 @lazyschemavalidation = lazyschemavalidation,
 @collation = collation
from
 sysservers
WHERE
 srvid = @server_ct

INSERT INTO #outputLog
SELECT 'EXEC sp_addlinkedserver ''' + @server + ''', '
  + CASE WHEN @srvproduct IS NULL THEN 'NULL' ELSE '''' + @srvproduct
+ '''' END + ', '
  + CASE WHEN @provider IS NULL THEN 'NULL' ELSE '''' + @provider +
'''' END + ', '
  + CASE WHEN @datasrc IS NULL THEN 'NULL' ELSE '''' + @datasrc +
'''' END + ', '
  + CASE WHEN @location IS NULL THEN 'NULL' ELSE '''' + @location +
'''' END + ', '
  + CASE WHEN @provstr IS NULL THEN 'NULL' ELSE '''' + @provstr +
'''' END + ', '
  + CASE WHEN @catalog IS NULL THEN 'NULL' ELSE '''' + @catalog +
'''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'rpc'', ' +
CASE WHEN @rpc = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'pub'', ' +
CASE WHEN @pub = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'sub'', ' +
CASE WHEN @sub = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'dist'', ' +
CASE WHEN @dist = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'dpub'', ' +
CASE WHEN @dpub = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'rpc out'', '
+ CASE WHEN @rpcout = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'data
access'', ' + CASE WHEN @dataaccess = 1 THEN '''TRUE''' ELSE
'''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'collation
compatible'', ' + CASE WHEN @collationcompatible = 1 THEN '''TRUE'''
ELSE '''FALSE''' END

--  INSERT INTO #outputLog
--  SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'system'',
' + CASE WHEN @system = 1 THEN '''TRUE''' ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'use remote
collation'', ' + CASE WHEN @userremotecollation = 1 THEN '''TRUE'''
ELSE '''FALSE''' END

INSERT INTO #outputLog
SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' + 'lazy schema
validation'', ' + CASE WHEN @lazyschemavalidation = 1 THEN '''TRUE'''
ELSE '''FALSE''' END

--  INSERT INTO #outputLog
--  SELECT 'EXEC sp_serveroption ''' + @server + ''', ''' +
'collation'', ' + CASE WHEN @collation IS NULL THEN 'NULL' ELSE '''' +
@collation + '''' END + ''

INSERT INTO #srvLogin
EXEC sp_helplinkedsrvlogin @server

INSERT INTO #outputLog
SELECT 'EXEC sp_addlinkedsrvlogin @rmtsrvname = '+ CASE WHEN
linkedServer IS NULL THEN 'NULL' ELSE '''' + linkedServer + '''' END
  + ', @useself = ' + CASE WHEN isSelfMapping = 1 THEN '''TRUE'''
ELSE '''FALSE''' END
  + ', @locallogin = ' + CASE WHEN localLogin IS NULL THEN 'NULL'
ELSE '''' + localLogin + '''' END
  + ', @rmtuser = ' + CASE WHEN remoteLogin IS NULL THEN 'NULL' ELSE
'''' + remoteLogin + '''' END
  + ', @rmtpassword  = ' + CASE WHEN isSelfMapping = 1 THEN 'NULL'
ELSE '''ENTER_PASSWORD_HERE''' END

FROM  #srvLogin

DELETE #srvLogin

SELECT @server_ct = @server_ct + 1
END

SELECT outputData from #outputLog
ORDER BY rowId

DROP TABLE #outputLog
DROP TABLE #srvLogin
CEduardo - 22 Jul 2008 21:34 GMT
Ok.

It possible don't enter password?

> On Jul 22, 3:21 pm, CEduardo <CEdua...@discussions.microsoft.com>
> wrote:
[quoted text clipped - 178 lines]
> DROP TABLE #outputLog
> DROP TABLE #srvLogin
vinu - 23 Jul 2008 10:29 GMT
Hi
see the link below

http://www.codeproject.com/KB/database/ScriptLinkedServers.aspx

vinu

> Ok.
>
[quoted text clipped - 183 lines]
>> DROP TABLE #outputLog
>> DROP TABLE #srvLogin
CEduardo - 23 Jul 2008 12:16 GMT
Hi

This script say "enter password here". I like one that do not need enter
password

> Hi
> see the link below
[quoted text clipped - 190 lines]
> >> DROP TABLE #outputLog
> >> DROP TABLE #srvLogin
vinu - 23 Jul 2008 12:30 GMT
Unfortunately, there is no supported method for doing this. You will have to
recreate and respecify the passwords for those accounts.

> Hi
>
[quoted text clipped - 196 lines]
>> >> DROP TABLE #outputLog
>> >> DROP TABLE #srvLogin
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.