SQL Linked Servers

Adding Linked Servers

To add a linked server in SQL Server 2005, you can use the sp_addlinkedserver command. The syntax is:

sp_addlinkedserver 'SERVERNAME','PRODUCT_NAME','PROVIDER','DATA_SOURCE','LOCATION','PROVIDER_STRING','CATALOG'
  • SERVERNAME - This is the name of the linked server that you will refer to.
  • PRODUCT_NAME - Usually just a text string that has no effect on the connection.
  • PROVIDER - See chart below.
  • DATA_SOURCE - Network name for server or path to file or DSN of data source.
  • LOCATION - A string describing your source.
  • PROVIDER_STRING - See chart below.
  • CATAGLOG - Usually an optional database name.

 

Remote OLE DB data source

OLE DB provider

product_name

provider_name

data_source

location

provider_string

catalog

SQL Server

Microsoft SQL Server Native Client OLE DB Provider

SQL Server (default)

 

 

 

 

 

SQL Server

Microsoft SQL Server Native Client OLE DB Provider

 

SQLNCLI

Network name of SQL Server (for default instance)

 

 

Database name (optional)

SQL Server

Microsoft SQL Server Native Client OLE DB Provider

 

SQLNCLI

servername\instancename (for specific instance)

 

 

Database name (optional)

Oracle

Microsoft OLE DB Provider for Oracle

Any

MSDAORA

SQL*Net alias for Oracle database

 

 

 

Oracle, version 8 and later

Oracle Provider for OLE DB

Any

OraOLEDB.Oracle

Alias for the Oracle database

 

 

 

Access/Jet

Microsoft OLE DB Provider for Jet

Any

Microsoft.Jet.OLEDB.4.0

Full path of Jet database file

 

 

 

ODBC data source

Microsoft OLE DB Provider for ODBC

Any

MSDASQL

System DSN of ODBC data source

 

 

 

ODBC data source

Microsoft OLE DB Provider for ODBC

Any

MSDASQL

 

 

ODBC connection string

 

File system

Microsoft OLE DB Provider for Indexing Service

Any

MSIDXS

Indexing Service catalog name

 

 

 

Microsoft Excel Spreadsheet

Microsoft OLE DB Provider for Jet

Any

Microsoft.Jet.OLEDB.4.0

Full path of Excel file

 

Excel 5.0 or Excel 8.0

 

IBM DB2 Database

Microsoft OLE DB Provider for DB2

Any

DB2OLEDB

 

 

See Microsoft OLE DB Provider for DB2 documentation.

Catalog name of DB2 database

Examples

Another SQL Server

USE master
GO
EXEC sp_addlinkedserver
    'plab2catsg02',
    N'SQL Server'
GO

Excel Linked Server

EXEC sp_addlinkedserver 'ExcelSource',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   '\\plab2catsg04\Restructure\Restructures.xls',
   NULL,
   'Excel 8.0'
GO

Textfile Linked Server

 EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
   'Microsoft.Jet.OLEDB.4.0',
   'c:\data\distqry',
   NULL,
   'Text'
GO 

Oracle Linked Server

EXEC sp_addlinkedserver 
  'OracleLinkedServer', 'Oracle', 
  'MSDAORA', 'OracleServer' 

EXEC sp_addlinkedsrvlogin ' 
  OracleLinkedServer ', false, 
  'SQLuser', 'OracleUser', 
  'OraclePwd'

Listing Linked Servers

You can use the sp_linkedservers command to provide a list of linked servers.

Dropping Linked Servers

To drop a linked server, it is as simple as executing the following command:

sp_dropserver 'LINKEDSERVERNAME' 'LOGINS'

Only sysadmins or setupadmins can execute this. Also, this cannot be executed inside a user-defined transaction.