sp_addlinkedserver (języka Transact-SQL)

Powoduje utworzenie serwer połączony.Serwer połączony zapewnia dostęp do rozproszonych, heterogenicznych kwerendy dla źródła danych OLE DB.Po utworzeniu połączonego serwera za pomocą sp_addlinkedserver, rozpowszechniane kwerendy mogą być uruchamiane na tym serwerze.Jeśli zdefiniowano serwer połączony jako wystąpienie SQL Server, zdalnych procedur przechowywanych, które mogą być uruchomione.

Topic link iconKonwencje składni języka Transact-SQL

sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] 
     [ , [ @provider= ] 'provider_name' ]
     [ , [ @datasrc= ] 'data_source' ] 
     [ , [ @location= ] 'location' ] 
     [ , [ @provstr= ] 'provider_string' ] 
     [ , [ @catalog= ] 'catalog' ] 

Argumenty

  • [ @server= ] 'server'
    Is the name of the linked server to create.server is sysname, with no default.

  • [ @srvproduct= ] 'product_name'
    Is the product name of the OLE DB data source to add as a linked server.product_name is nvarchar(128), with a default of NULL.Jeśli Program SQL Server, provider_name, data_source, location, provider_string, a catalog nie musi być określona.

  • [ @provider= ] 'provider_name'
    Is the unique programmatic identifier (PROGID) of the OLE DB provider that corresponds to this data source.provider_name must be unique for the specified OLE DB provider installed on the current computer.provider_name is nvarchar(128), with a default of NULL; however, if provider_name is omitted, SQLNCLI is used.(Użyj SQLNCLI i SQL Server będzie przekierować do najnowszej wersja programu SQL Server Macierzysta klient dostawca OLE DB.) dostawca OLE DB powinien być zarejestrowany z określoną nazwą PROGID w rejestrze.

  • [ @datasrc= ] 'data_source'
    Is the name of the data source as interpreted by the OLE DB provider.data_source is nvarchar(4000).data_source is passed as the DBPROP_INIT_DATASOURCE property to initialize the OLE DB provider.

  • [ @location= ] 'location'
    Is the location of the database as interpreted by the OLE DB provider.location is nvarchar(4000), with a default of NULL.location is passed as the DBPROP_INIT_LOCATION property to initialize the OLE DB provider.

  • [ @provstr= ] 'provider_string'
    Is the OLE DB provider-specific connection string that identifies a unique data source.provider_string is nvarchar(4000), with a default of NULL.provstr is either passed to IDataInitialize or set as the DBPROP_INIT_PROVIDERSTRING property to initialize the OLE DB provider.

    When the linked server is created against the SQL Server Native Client OLE DB provider, the instance can be specified by using the SERVER keyword as SERVER=servername\instancename to specify a specific instance of SQL Server.servername is the name of the computer on which SQL Server is running, and instancename is the name of the specific instance of SQL Server to which the user will be connected.

    Uwaga

    Aby uzyskać dostęp do dublowane bazy danych, ciąg połączenia musi zawierać nazwy bazy danych.Ta nazwa jest niezbędne w celu umożliwienia prób przejęcia awaryjnego przez dostawca dostępu do danych.Baza danych może być określony w @ provstr or @ catalog parametr.Opcjonalnie ciąg połączenia można także podać nazwę partner pracy awaryjnej.Aby uzyskać więcej informacji zobaczMaking the Initial Connection to a Database Mirroring Session.

  • [ @catalog= ] 'catalog'
    Is the catalog to be used when a connection is made to the OLE DB provider.catalog is sysname, with a default of NULL.catalog is passed as the DBPROP_INIT_CATALOG property to initialize the OLE DB provider.Gdy do serwer połączony jest zdefiniowany przed wystąpienie SQL Server, katalog, który odnosi się do domyślna baza danych, na który jest mapowany do serwer połączony.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Zestawy wyników

Brak.

Remarks

W poniższej tabela przedstawiono sposoby serwer połączony można zestaw dla źródła danych, które mogą być udostępniane za pośrednictwem OLE DB.Serwer połączony może być zestaw górę więcej niż jednym ze sposobów dla urządzenie źródłowe danych; może istnieć więcej niż jeden wiersz dla typu urządzenie źródłowe danych.Tabela ta zawiera także sp_addlinkedserver parametr wartości ma być używany do konfigurowania serwer połączony.

Zdalne urządzenie źródłowe danych OLE DB

Dostawca OLE DB

product_name

provider_name

data_source

Lokalizacja

provider_string

katalog

SQL Server

Microsoft SQL Server Macierzystego dostawca OLE DB klient

SQL Server1 (domyślnie)

 

 

 

 

 

SQL Server

Microsoft SQL Server Macierzystego dostawca OLE DB klient

 

SQLNCLI

Nazwa sieciowa SQL Server (w przypadku wystąpienie domyślnego)

 

 

Nazwa bazy danych (opcjonalnie)

SQL Server

Microsoft SQL Server Macierzystego dostawca OLE DB klient

 

SQLNCLI

nazwa_serwera\nazwa_wystąpienia (dla określonego wystąpienie)

 

 

Nazwa bazy danych (opcjonalnie)

Oracle

Microsoft Dostawca OLE DB dla Oracle

Wszystkie2

MSDAORA

SQL * NET alias dla bazy danych Oracle

 

 

 

Oracle w wersja 8 lub nowszym

Oracle dostawca for OLE DB

Dowolne

OraOLEDB.Oracle

Alias bazy danych Oracle

 

 

 

Dostęp/Jet

Microsoft OLE DB dostawca for Jet

Dowolne

Microsoft.Jet.OLEDB.4.0

Pełna ścieżka do plik bazy danych Jet

 

 

 

urządzenie źródłowe danych ODBC

Dostawca Microsoft OLE DB dla ODBC

Dowolne

MSDASQL

Systemowe urządzenie źródłowe danych DSN ODBC

 

 

 

urządzenie źródłowe danych ODBC

Microsoft Dostawca OLE DB dla ODBC

Dowolne

MSDASQL

 

 

Ciąg połączenia ODBC

 

System plików

Microsoft Dostawca OLE DB dla usługa indeksowania

Dowolne

MSIDXS

Nazwa wykazu usługa indeksowania

 

 

 

Microsoft Arkusz kalkulacyjny programu Excel

Microsoft OLE DB dostawca for Jet

Dowolne

Microsoft.Jet.OLEDB.4.0

Pełna ścieżka do pliku programu Excel

 

Program Excel 5,0

 

Baza danych programu IBM DB2

Microsoft Dostawca OLE DB dla DB2

Dowolne

DB2OLEDB

 

 

Zobacz Microsoft Dostawca OLE DB dla DB2 dokumentacji.

Nazwa katalogu bazy danych DB2

1 W ten sposób konfigurowania serwer połączony wymusza nazwa serwer połączony, który ma być taka sama jak nazwa sieci zdalnego wystąpienie SQL Server. Użycie data_source Aby określić serwer.

2 "Dowolny" wskazuje, że nazwa produktu może być dowolny.

The Microsoft SQL Server Native Client OLE DB provider is the provider that is used with SQL Server if no provider name is specified or if SQL Server is specified as the product name.Nawet jeśli określono starsza nazwa dostawca SQLOLEDB, zmieni się na SQLNCLI podczas utrwalone w wykazie.

The data_source, location, provider_string, and catalog parameters identify the database or databases the serwer połączony points to. Jeśli jeden z tych parametrów ma wartość NULL, odpowiednia właściwość inicjowania OLE DB nie jest ustawiona.

W środowisku klastrowym po określeniu nazwy plików w celu wskazania źródła danych OLE DB, użyj uniwersalnej nazwy konwencja nazewnictwa (UNC) lub dysku udostępnionego do określenia lokalizacji.

sp_addlinkedserver nie można wykonać w transakcji zdefiniowanej przez użytkownika.

Security noteSecurity Note:

Podczas tworzenia serwer połączony za pomocą sp_addlinkedserver, domyślne self-mapping dodany dla wszystkich identyfikatorów logowania lokalnego.Dla innych niż-SQL Server dostawca, SQL Server Uwierzytelniony logowania może być w stanie uzyskać dostęp do dostawca, w obszarze SQL Server konto usługa. Administratorzy powinni zapoznać się z pomocą sp_droplinkedsrvlogin <linkedserver_name>, NULL Aby usunąć mapowanie globalne.

Uprawnienia

Wymaga uprawnienia ALTER jakiegokolwiek serwer połączony.

Przykłady

A.Korzystanie z dostawca OLE DB Microsoft SQL Server Native klient

W poniższym przykładzie przedstawiono tworzenie serwer połączony, o nazwie SEATTLESales. Nazwa produktu SQL Server, a nie nazwy dostawca jest używany.

USE master;
GO
EXEC sp_addlinkedserver 
   'SEATTLESales',
   N'SQL Server'
GO

W poniższym przykładzie przedstawiono tworzenie serwer połączony S1_instance1 na wystąpienie SQL Server za pomocą SQL Server Macierzystego dostawca klient OLE DB.

EXEC sp_addlinkedserver   
   @server='S1_instance1', 
   @srvproduct='',
   @provider='SQLNCLI', 
   @datasrc='S1\instance1'

B.Przy użyciu dostawca Microsoft OLE DB dla programu Microsoft Access

Dostawca Microsoft.Jet.OLEDB.4.0 łączy się z baz danych programu Microsoft Access, który korzysta z formatu 2002-2003.W poniższym przykładzie przedstawiono tworzenie serwer połączony, o nazwie SEATTLE Mktg.

Uwaga

W tym przykładzie przyjęto założenie, oba Microsoft Program Access i próbki Northwind bazy danych są zainstalowane i że Northwind baza danych znajduje się w C:\Msoffice\Access\Samples.

EXEC sp_addlinkedserver 
   @server = 'SEATTLE Mktg', 
   @provider = 'Microsoft.Jet.OLEDB.4.0', 
   @srvproduct = 'OLE DB Provider for Jet',
   @datasrc = 'C:\MSOffice\Access\Samples\Northwind.mdb'
GO

Dostawca Microsoft.ACE.OLEDB.12.0 łączy się z baz danych programu Microsoft Access, który korzysta z formatu 2007.W poniższym przykładzie przedstawiono tworzenie serwer połączony, o nazwie SEATTLE Mktg.

Uwaga

W tym przykładzie przyjęto założenie, oba Microsoft Program Access i próbki Northwind bazy danych są zainstalowane i że Northwind baza danych znajduje się w C:\Msoffice\Access\Samples.

EXEC sp_addlinkedserver 
   @server = 'SEATTLE Mktg', 
   @provider = Microsoft.ACE.OLEDB.12.0', 
   @srvproduct = 'OLE DB Provider for ACE',
   @datasrc = 'C:\MSOffice\Access\Samples\Northwind.accdb'
GO

Przy użyciu dostawca Microsoft OLE DB dla Oracle

The following example creates a linked server named LONDON Mktg that uses the Microsoft OLE DB Provider for Oracle and assumes that the SQL*Net alias for the Oracle database is MyServer.

EXEC sp_addlinkedserver
   @server = 'LONDON Mktg',
   @srvproduct = 'Oracle',
   @provider = 'MSDAORA',
   @datasrc = 'MyServer'
GO

D.Przy użyciu dostawca OLE DB firmy Microsoft dla ODBC z parametrem data_source

W poniższym przykładzie przedstawiono tworzenie serwer połączony, o nazwie SEATTLE Payroll używające Microsoft Dostawca OLE DB dla ODBC)MSDASQL) i data_source parametr.

Uwaga

Określona nazwa urządzenie źródłowe danych ODBC musi być zdefiniowany jako systemowe urządzenie źródłowe danych DSN na serwerze przed skorzystaniem z serwer połączony.

EXEC sp_addlinkedserver 
   @server = 'SEATTLE Payroll', 
   @srvproduct = '',
   @provider = 'MSDASQL', 
   @datasrc = 'LocalServer'
GO

E.Przy użyciu dostawca OLE DB firmy Microsoft dla arkusza kalkulacyjnego programu Excel

Aby utworzyć definicję połączonego serwera za pomocą Microsoft OLE DB dostawca for Jet do dostępu do arkusza kalkulacyjnego programu Excel w formacie 1997-2003, najpierw utworzyć nazwany zakres w programie Excel, określając kolumn i wierszy arkusza programu Excel, aby wybrać. Nazwę zakres, następnie można się odwoływać jako nazwę tabela w kwerenda rozproszona.

EXEC sp_addlinkedserver 'ExcelSource',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   'c:\MyData\DistExcl.xls',
   NULL,
   'Excel 5.0'
GO

Dostęp do danych z arkusza kalkulacyjnego programu Excel, należy skojarzyć zakres komórek przy użyciu nazwy.Następująca kwerenda może służyć do dostępu do określonego nazwanego zakres SalesData w tabela przy użyciu serwer połączony służy do ustawiania wcześniej.

SELECT *
   FROM ExcelSource...SalesData
GO

Jeśli SQL Server działa na koncie domena ma dostęp do udziału zdalnego ścieżka UNC mogą być używane zamiast zmapowanego dysku.

EXEC sp_addlinkedserver 'ExcelShare',
   'Jet 4.0',
   'Microsoft.Jet.OLEDB.4.0',
   '\\MyServer\MyShare\Spreadsheets\DistExcl.xls',
   NULL,
   'Excel 5.0'

Aby połączyć się z arkusza kalkulacyjnego programu Excel w użyciu formacie programu Excel 2007 dostawca wpisu kontroli dostępu (ACE).

EXEC sp_addlinkedserver @server = N'ExcelDataSource', 
@srvproduct=N'ExcelData', @provider=N'Microsoft.ACE.OLEDB.12.0', 
@datasrc=N'C:\DataFolder\People.xlsx',
@provstr='EXCEL 12.0' ;

F.Za pomocą Microsoft OLE DB dostawca for Jet w celu uzyskania dostępu do pliku tekstowego

Poniższy przykład powoduje utworzenie serwer połączony za bezpośredni dostęp do plików tekstowych, bez łączenia plików jako tabele w pliku MDB programu Access.Dostawca jest Microsoft.Jet.OLEDB.4.0 a ciąg dostawcy Text.

urządzenie źródłowe danych jest pełną ścieżka katalogu zawierającego pliki tekstowe.Plik schema.ini, który opisuje strukturę plików tekstowych, musi istnieć w tym samym katalogu, w plikach tekstowych.Aby uzyskać więcej informacji na temat tworzenia pliku Schema.ini, można znaleźć w dokumentacji aparat bazy danych Jet.

--Create a linked server.
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
   'Microsoft.Jet.OLEDB.4.0',
   'c:\data\distqry',
   NULL,
   'Text'
GO

--Set up login mappings.
EXEC sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL
GO

--List the tables in the linked server.
EXEC sp_tables_ex txtsrv
GO

--Query one of the tables: file1#txt
--using a four-part name. 
SELECT * 
FROM txtsrv...[file1#txt]

G.Przy użyciu dostawca Microsoft OLE DB dla DB2

W poniższym przykładzie przedstawiono tworzenie serwer połączony, o nazwie DB2 używające Microsoft OLE DB Provider for DB2.

EXEC sp_addlinkedserver
   @server='DB2',
   @srvproduct='Microsoft OLE DB Provider for DB2',
   @catalog='DB2',
   @provider='DB2OLEDB',
   @provstr='Initial Catalog=PUBS;
       Data Source=DB2;
       HostCCSID=1252;
       Network Address=XYZ;
       Network Port=50000;
       Package Collection=admin;
       Default Schema=admin;'