sp_addlinkedserver (Transact-SQL)sp_addlinkedserver (Transact-SQL)

GILT FÜR: jaSQL Server jaAzure SQL-Datenbank (nur verwaltete Instanz) neinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt einen Verbindungsserver.Creates a linked server. Ein Verbindungsserver ermöglicht den Zugriff auf verteilte, heterogene Abfragen für OLE DB-Datenquellen.A linked server allows for access to distributed, heterogeneous queries against OLE DB data sources. Nachdem ein Verbindungs Server mithilfe von sp_addlinkedservererstellt wurde, können verteilte Abfragen für diesen Server ausgeführt werden.After a linked server is created by using sp_addlinkedserver, distributed queries can be run against this server. Wenn der Verbindungsserver als Instanz von SQL ServerSQL Serverdefiniert wird, können remote gespeicherte Prozeduren ausgeführt werden.If the linked server is defined as an instance of SQL ServerSQL Server, remote stored procedures can be executed.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

[@server =] 'server @ no__t-3 [ @server = ] 'server'
Der Name des zu erstellenden Verbindungsservers.Is the name of the linked server to create. server ist vom Datentyp sysnameund hat keinen Standardwert.server is sysname, with no default.

[@srvproduct =] 'product_name @ no__t-3 [ @srvproduct = ] 'product_name'
Der Produktname der OLE DB-Datenquelle, die als Verbindungsserver hinzugefügt werden soll.Is the product name of the OLE DB data source to add as a linked server. product_name ist vom Datentyp nvarchar ( 128 ) und hat den Standardwert NULL.product_name is nvarchar( 128 ), with a default of NULL. Wenn SQL Server, provider_name, data_source, Location, provider_stringund catalog nicht angegeben werden müssen.If SQL Server, provider_name, data_source, location, provider_string, and catalog do not have to be specified.

[@provider =] 'provider_name @ no__t-3 [ @provider = ] 'provider_name'
Der eindeutige Programmbezeichner (Programmatic Identifier, PROGID) des OLE DB-Anbieters, der dieser Datenquelle entspricht.Is the unique programmatic identifier (PROGID) of the OLE DB provider that corresponds to this data source. provider_name muss für den angegebenen OLE DB Anbieter, der auf dem aktuellen Computer installiert ist, eindeutig sein.provider_name must be unique for the specified OLE DB provider installed on the current computer. provider_name ist vom Datentyp nvarchar (128) und hat den Standardwert NULL. Wenn provider_name jedoch ausgelassen wird, wird sqlncli verwendet.provider_name is nvarchar(128), with a default of NULL; however, if provider_name is omitted, SQLNCLI is used.

Hinweis

Die Verwendung von SQLNCLI leitet SQL ServerSQL Server an die neueste Version von SQL ServerSQL Server Native Client OLE DB-Anbieter weiter.Using SQLNCLI will redirect SQL ServerSQL Server to the latest version of SQL ServerSQL Server Native Client OLE DB Provider. Es wird vorausgesetzt, dass der OLE DB-Anbieter mit der angegebenen PROGID in der Registrierung registriert ist.The OLE DB provider is expected to be registered with the specified PROGID in the registry.

Wichtig

Der vorherige Microsoft OLE DB-Anbieter für SQL Server (SQLOLEDB) und SQL Server Native Client OLE DB-Anbieter (SQLNCLI) bleiben als veraltet markiert und sollten nicht mehr für neue Bereitstellungen verwendet werden.The previous Microsoft OLE DB Provider for SQL Server (SQLOLEDB) and SQL Server Native Client OLE DB provider (SQLNCLI) remain deprecated and it is not recommended to use either for new development work. Verwenden Sie stattdessen den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL), der mit den aktuellsten Serverfeatures aktualisiert wird.Instead, use the new Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) which will be updated with the most recent server features.

[@datasrc =] 'data_source @ no__t-3 [ @datasrc = ] 'data_source'
Der Name der Datenquelle, wie er vom OLE DB-Anbieter interpretiert wird.Is the name of the data source as interpreted by the OLE DB provider. data_source ist vom Datentyp nvarchar ( 4000 ) .data_source is nvarchar( 4000 ). data_source wird als DBPROP_INIT_DATASOURCE-Eigenschaft zum Initialisieren des OLE DB Anbieters übermittelt.data_source is passed as the DBPROP_INIT_DATASOURCE property to initialize the OLE DB provider.

[@location =] 'location @ no__t-3 [ @location = ] 'location'
Der Speicherort der Datenbank im vom OLE DB-Anbieter unterstützten Format.Is the location of the database as interpreted by the OLE DB provider. Location ist vom Datentyp nvarchar ( 4000 ) und hat den Standardwert NULL.location is nvarchar( 4000 ), with a default of NULL. der Speicherort wird als DBPROP_INIT_LOCATION-Eigenschaft zum Initialisieren des OLE DB Anbieters übermittelt.location is passed as the DBPROP_INIT_LOCATION property to initialize the OLE DB provider.

[@provstr =] 'provider_string @ no__t-3 [ @provstr = ] 'provider_string'
Die für den OLE DB-Anbieter spezifische Verbindungszeichenfolge, die eine eindeutige Datenquelle identifiziert.Is the OLE DB provider-specific connection string that identifies a unique data source. provider_string ist vom Datentyp nvarchar ( 4000 ) und hat den Standardwert NULL.provider_string is nvarchar( 4000 ), with a default of NULL. provstr wird entweder an IDataInitialize weitergeleitet oder als DBPROP_INIT_PROVIDERSTRING-Eigenschaft festgelegt, um den OLE DB-Anbieter zu initialisieren.provstr is either passed to IDataInitialize or set as the DBPROP_INIT_PROVIDERSTRING property to initialize the OLE DB provider.

Wenn der Verbindungs Server für den SQL ServerSQL Server-Native Client OLE DB-Anbieter erstellt wird, kann die Instanz mit dem Server Schlüsselwort als Server = ServerName\instanceName angegeben werden, um eine bestimmte Instanz von SQL ServerSQL Server anzugeben.When the linked server is created against the SQL ServerSQL 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 ServerSQL Server. Server Name ist der Name des Computers, auf dem SQL ServerSQL Server ausgeführt wird, und instanceName ist der Name der spezifischen Instanz von SQL ServerSQL Server, mit der der Benutzer verbunden wird.servername is the name of the computer on which SQL ServerSQL Server is running, and instancename is the name of the specific instance of SQL ServerSQL Server to which the user will be connected.

Hinweis

Der Zugriff auf eine gespiegelte Datenbank ist nur dann möglich, wenn eine Verbindungszeichenfolge den Datenbanknamen enthält.To access a mirrored database, a connection string must contain the database name. Dieser Name ist notwendig, um Failoverversuche des Datenzugriffsanbieters zu ermöglichen.This name is necessary to enable failover attempts by the data access provider. Die Datenbank kann im Parameter @provstr oder @catalog angegeben werden.The database can be specified in the @provstr or @catalog parameter. Optional kann in der Verbindungszeichenfolge auch ein Failoverpartnername angegeben werden.Optionally, the connection string can also supply a failover partner name.

[@catalog =] 'catalog @ no__t-3 [ @catalog = ] 'catalog'
Der Katalog, der verwendet werden soll, wenn eine Verbindung mit dem OLE DB-Anbieter hergestellt wird.Is the catalog to be used when a connection is made to the OLE DB provider. catalog ist vom Datentyp vom Datentyp sysnameund hat den Standardwert NULL.catalog is sysname, with a default of NULL. der Katalog wird als DBPROP_INIT_CATALOG-Eigenschaft zum Initialisieren des OLE DB Anbieters übermittelt.catalog is passed as the DBPROP_INIT_CATALOG property to initialize the OLE DB provider. Wenn der Verbindungsserver für eine Instanz von SQL ServerSQL Server definiert wird, verweist catalog auf die Standarddatenbank, der der Verbindungsserver zugeordnet ist.When the linked server is defined against an instance of SQL ServerSQL Server, catalog refers to the default database to which the linked server is mapped.

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

ResultsetsResult Sets

Keine.None.

HinweiseRemarks

Die folgende Tabelle zeigt die Einrichtungsmöglichkeiten eines Verbindungsservers für Datenquellen, auf die über OLE DB zugegriffen werden kann.The following table shows the ways that a linked server can be set up for data sources that can be accessed through OLE DB. Für die Einrichtung eines Verbindungsservers für eine bestimmte Datenquelle gibt es mehrere Möglichkeiten; für die einzelnen Datenquellentypen sind möglicherweise mehrere Zeilen vorhanden.A linked server can be set up more than one way for a particular data source; there can be more than one row for a data source type. Diese Tabelle zeigt auch die sp_addlinkedserver -Parameterwerte, die zum Einrichten des Verbindungs Servers verwendet werden sollen.This table also shows the sp_addlinkedserver parameter values to be used for setting up the linked server.

OLE DB-RemotedatenquelleRemote OLE DB data source OLE DB-AnbieterOLE DB provider product_nameproduct_name provider_nameprovider_name data_sourcedata_source locationlocation provider_stringprovider_string catalogcatalog
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL Server Native Client-OLE DB AnbieterSQL ServerSQL Server Native Client OLE DB Provider SQL ServerSQL Server 1 (Standard)1 (default)
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL Server Native Client-OLE DB AnbieterSQL ServerSQL Server Native Client OLE DB Provider SQLNCLISQLNCLI Netzwerkname von SQL ServerSQL Server (für Standardinstanz)Network name of SQL ServerSQL Server (for default instance) Datenbankname (optional)Database name (optional)
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL Server Native Client-OLE DB AnbieterSQL ServerSQL Server Native Client OLE DB Provider SQLNCLISQLNCLI Servername\instanceName (für eine bestimmte Instanz)servername\instancename (for specific instance) Datenbankname (optional)Database name (optional)
Oracle, Version 8 und höherOracle, version 8 and later Oracle-Anbieter für OLE DBOracle Provider for OLE DB AnyAny OraOLEDB.OracleOraOLEDB.Oracle Alias für die Oracle-DatenbankAlias for the Oracle database
Access/JetAccess/Jet Microsoft OLE DB-Anbieter für JetMicrosoft OLE DB Provider for Jet AnyAny Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Vollständiger Pfad der Jet-DatenbankdateiFull path of Jet database file
ODBC-Datenquelle (ODBC data source)ODBC data source Microsoft OLE DB-Anbieter für ODBCMicrosoft OLE DB Provider for ODBC AnyAny MSDASQLMSDASQL System-DSN der ODBC-DatenquelleSystem DSN of ODBC data source
ODBC-Datenquelle (ODBC data source)ODBC data source MicrosoftMicrosoft OLE DB-Anbieter für ODBCOLE DB Provider for ODBC AnyAny MSDASQLMSDASQL ODBC-VerbindungszeichenfolgeODBC connection string
DateisystemFile system MicrosoftMicrosoft OLE DB-Anbieter für den IndexdienstOLE DB Provider for Indexing Service AnyAny MSIDXSMSIDXS Katalogname von IndexdienstleistungIndexing Service catalog name
MicrosoftMicrosoft Excel-KalkulationstabelleExcel Spreadsheet MicrosoftMicrosoft OLE DB-Anbieter für JetOLE DB Provider for Jet AnyAny Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Vollständiger Pfad der Excel-DateiFull path of Excel file Excel 5,0Excel 5.0
IBM DB2-DatenbankIBM DB2 Database MicrosoftMicrosoft OLE DB-Anbieter für DB2OLE DB Provider for DB2 AnyAny DB2OLEDBDB2OLEDB Weitere Informationen finden Sie unter MicrosoftMicrosoft OLE DB Provider für DB2-Dokumentation.See MicrosoftMicrosoft OLE DB Provider for DB2 documentation. Katalogname der DB2-DatenbankCatalog name of DB2 database

1 diese Art der Einrichtung eines Verbindungs Servers erzwingt, dass der Name des Verbindungs Servers mit dem Netzwerknamen der Remote Instanz von SQL ServerSQL Server identisch ist.1 This way of setting up a linked server forces the name of the linked server to be the same as the network name of the remote instance of SQL ServerSQL Server. Verwenden Sie data_source , um den Server anzugeben.Use data_source to specify the server.

2 "Any" gibt an, dass der Produktname etwas sein kann.2 "Any" indicates that the product name can be anything.

Der MicrosoftMicrosoft SQL ServerSQL Server Native Client OLE DB-Anbieter ist der Anbieter, der mit SQL ServerSQL Server verwendet wird, wenn kein Anbieter Name angegeben ist oder wenn SQL ServerSQL Server als Produktname angegeben wird.The MicrosoftMicrosoft SQL ServerSQL Server Native Client OLE DB provider is the provider that is used with SQL ServerSQL Server if no provider name is specified or if SQL ServerSQL Server is specified as the product name. Selbst wenn Sie den älteren Anbieternamen, SQLOLEDB, angeben, wird er beim persistenten Speichern im Katalog in SQLNCLI geändert.Even if you specify the older provider name, SQLOLEDB, it will be changed to SQLNCLI when persisted to the catalog.

Mit den Parametern data_source, Location, provider_stringund catalog werden die Datenbank oder Datenbanken identifiziert, auf die der Verbindungs Server verweist.The data_source, location, provider_string, and catalog parameters identify the database or databases the linked server points to. Falls einer dieser Parameter den Wert NULL hat, wird die entsprechende OLE DB-Initialisierungseigenschaft nicht festgelegt.If any one of these parameters is NULL, the corresponding OLE DB initialization property is not set.

Verwenden Sie in einer Clusterumgebung, wenn Sie Dateinamen angeben, um auf OLE DB-Datenquellen zu verweisen, den UNC-Namen (Universal Naming Convention) oder ein freigegebenes Laufwerk, um den Speicherort anzugeben.In a clustered environment, when you specify file names to point to OLE DB data sources, use the universal naming convention name (UNC) or a shared drive to specify the location.

sp_addlinkedserver kann nicht innerhalb einer benutzerdefinierten Transaktion ausgeführt werden.sp_addlinkedserver cannot be executed within a user-defined transaction.

Wichtig

Wenn ein Verbindungs Server mithilfe von sp_addlinkedservererstellt wird, wird für alle lokalen Anmeldungen eine standardmäßige selbst Zuordnung hinzugefügt.When a linked server is created by using sp_addlinkedserver, a default self-mapping is added for all local logins. Bei nicht-SQL ServerSQL Server-Anbietern können SQL ServerSQL Server-authentifizierte Anmeldungen möglicherweise Zugriff auf den Anbieter unter dem SQL ServerSQL Server-Dienst Konto erhalten.For non- SQL ServerSQL Server providers, SQL ServerSQL Server Authenticated logins may be able to gain access to the provider under the SQL ServerSQL Server service account. Administratoren sollten eventuell sp_droplinkedsrvlogin <linkedserver_name>, NULL verwenden, um die globale Zuordnung zu entfernen.Administrators should consider using sp_droplinkedsrvlogin <linkedserver_name>, NULL to remove the global mapping.

BerechtigungenPermissions

Die sp_addlinkedserver-Anweisung erfordert die Berechtigung "ALTER ANY LINKED SERVER".The sp_addlinkedserver statement requires the ALTER ANY LINKED SERVER permission. (Das Dialogfeld neuer Verbindungs Server @no__t 0 wird so implementiert, dass die Mitgliedschaft in der sysadmin-Server Rolle erforderlich ist.)(The SQL Server Management StudioSQL Server Management Studio New Linked Server dialog box is implemented in a way that requires membership in the sysadmin fixed server role.)

BeispieleExamples

A.A. Verwenden des Microsoft SQL Server OLE DB-AnbietersUsing the Microsoft SQL Server OLE DB Provider

Im folgenden Beispiel wird der Verbindungsserver SEATTLESales erstellt.The following example creates a linked server named SEATTLESales. Der Produktname lautet SQL Server, und es wird kein Anbietername verwendet.The product name is SQL Server, and no provider name is used.

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

Im folgenden Beispiel wird ein Verbindungs Server S1_instance1 für eine Instanz von SQL ServerSQL Server mithilfe des SQL ServerSQL Server-OLE DB Treibers erstellt.The following example creates a linked server S1_instance1 on an instance of SQL ServerSQL Server by using the SQL ServerSQL Server OLE DB driver.

EXEC sp_addlinkedserver     
   @server=N'S1_instance1',   
   @srvproduct=N'',  
   @provider=N'MSOLEDBSQL',   
   @datasrc=N'S1\instance1';  

Im folgenden Beispiel wird ein Verbindungs Server S1_instance1 für eine Instanz von SQL ServerSQL Server mithilfe des SQL ServerSQL Server Native Client OLE DB-Anbieters erstellt.The following example creates a linked server S1_instance1 on an instance of SQL ServerSQL Server by using the SQL ServerSQL Server Native Client OLE DB provider.

Wichtig

Der SQL Server Native Client OLE DB-Anbieter (SQLNCLI) bleibt als veraltet markiert und sollte nicht mehr für neue Bereitstellungen verwendet werden.SQL Server Native Client OLE DB provider (SQLNCLI) remains deprecated and it is not recommended to use it for new development work. Verwenden Sie stattdessen den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL), der mit den aktuellsten Serverfeatures aktualisiert wird.Instead, use the new Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) which will be updated with the most recent server features.

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

B.B. Verwenden des Microsoft OLE DB-Anbieters für Microsoft AccessUsing the Microsoft OLE DB Provider for Microsoft Access

Der Microsoft.Jet.OLEDB.4.0-Anbieter stellt eine Verbindung mit Microsoft Access-Datenbanken her, die das 2002-2003-Format verwenden.The Microsoft.Jet.OLEDB.4.0 provider connects to Microsoft Access databases that use the 2002-2003 format. Im folgenden Beispiel wird der Verbindungsserver SEATTLE Mktg erstellt.The following example creates a linked server named SEATTLE Mktg.

Hinweis

In diesem Beispiel wird davon ausgegangen, dass sowohl MicrosoftMicrosoft-Zugriff als auch die Northwind -Beispieldatenbank installiert sind und dass sich die Northwind -Datenbank unter c:\msoffice\access\samplesbefindet.This example assumes that both MicrosoftMicrosoft Access and the sample Northwind database are installed and that the Northwind database resides in C:\Msoffice\Access\Samples.

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

Der Microsoft.ACE.OLEDB.12.0-Anbieter stellt eine Verbindung mit Microsoft Access-Datenbanken her, die das 2007-Format verwenden.The Microsoft.ACE.OLEDB.12.0 provider connects to Microsoft Access databases that use the 2007 format. Im folgenden Beispiel wird der Verbindungsserver SEATTLE Mktg erstellt.The following example creates a linked server named SEATTLE Mktg.

Hinweis

In diesem Beispiel wird davon ausgegangen, dass sowohl MicrosoftMicrosoft-Zugriff als auch die Northwind -Beispieldatenbank installiert sind und dass sich die Northwind -Datenbank unter c:\msoffice\access\samplesbefindet.This example assumes that both MicrosoftMicrosoft Access and the sample Northwind database are installed and that the Northwind database resides in C:\Msoffice\Access\Samples.

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

C.C. Verwenden des Microsoft OLE DB-Anbieters für ODBC mit dem data_source-ParameterUsing the Microsoft OLE DB Provider for ODBC with the data_source parameter

Im folgenden Beispiel wird ein Verbindungs Server mit dem Namen SEATTLE Payroll erstellt, der den MicrosoftMicrosoft-OLE DB Anbieter für ODBC (MSDASQL) und den data_source -Parameter verwendet.The following example creates a linked server named SEATTLE Payroll that uses the MicrosoftMicrosoft OLE DB Provider for ODBC (MSDASQL) and the data_source parameter.

Hinweis

Der angegebene ODBC-Datenquellenname muss vor der Verwendung des Verbindungsservers auf dem Server als System-DSN definiert werden.The specified ODBC data source name must be defined as System DSN in the server before you use the linked server.

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

D.D. Verwenden des Microsoft OLE DB-Anbieters für Excel-ArbeitsblätterUsing the Microsoft OLE DB Provider for Excel spreadsheet

Erstellen Sie zunächst einen benannten Bereich in Excel, indem Sie die Spalten und Zeilen des Excel-Arbeitsblatts angeben, um eine Verbindungs Server Definition zu erstellen, die den MicrosoftMicrosoft-OLE DB Anbieter für Jet für den Zugriff auf eine Excel-Tabelle im 1997-2003-Format verwendet.To create a linked server definition using the MicrosoftMicrosoft OLE DB Provider for Jet to access an Excel spreadsheet in the 1997 - 2003 format, first create a named range in Excel by specifying the columns and rows of the Excel worksheet to select. Auf den Namen des Bereichs kann dann als Tabellenname in einer verteilten Abfrage verwiesen werden.The name of the range can then be referenced as a table name in a distributed query.

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

Um auf Daten zugreifen zu können, die sich in einer Excel-Kalkulationstabelle befinden, ordnen Sie einem Zellenbereich einen Namen zu.To access data from an Excel spreadsheet, associate a range of cells with a name. Die folgende Abfrage kann für den Zugriff auf den angegebenen benannten Bereich SalesData als Tabelle mithilfe des zuvor eingerichteten Verbindungsservers verwendet werden.The following query can be used to access the specified named range SalesData as a table by using the linked server set up previously.

SELECT *  
   FROM ExcelSource...SalesData;  
GO  

Wenn SQL ServerSQL Server unter einem Domänenkonto ausgeführt wird, das Zugriff auf eine Remotefreigabe hat, kann ein UNC-Pfad anstelle eines zugeordneten Laufwerks verwendet werden.If SQL ServerSQL Server is running under a domain account that has access to a remote share, a UNC path can be used instead of a mapped drive.

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

Verwenden Sie den ACE-Anbieter, um eine Verbindung mit einem Excel-Arbeitsblatt im Excel 2007-Format herzustellen.To connect to an Excel spreadsheet in the Excel 2007 format use the ACE provider.

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

E.E. Verwenden des Microsoft OLE DB-Anbieters für Jet für den Zugriff auf eine TextdateiUsing the Microsoft OLE DB Provider for Jet to access a text file

Im folgenden Beispiel wird ein Verbindungsserver für den direkten Zugriff auf Textdateien erstellt, ohne die Dateien als Tabellen in einer MDB-Datei von Microsoft Access zu verknüpfen.The following example creates a linked server for directly accessing text files, without linking the files as tables in an Access .mdb file. Der Anbieter ist Microsoft.Jet.OLEDB.4.0, und die Anbieterzeichenfolge lautet Text.The provider is Microsoft.Jet.OLEDB.4.0 and the provider string is Text.

Die Datenquelle ist der vollständige Pfad des Verzeichnisses mit den Textdateien.The data source is the full path of the directory that contains the text files. Eine Datei namens schema.ini, die die Struktur der Textdateien beschreibt, muss im selben Verzeichnis wie die Textdateien vorhanden sein.A schema.ini file, which describes the structure of the text files, must exist in the same directory as the text files. Weitere Informationen zum Erstellen der Datei Schema.ini finden Sie in der Dokumentation zur Jet-Datenbank-Engine.For more information about how to create a Schema.ini file, see the Jet Database Engine documentation.

--Create a linked server.  
EXEC sp_addlinkedserver txtsrv, N'Jet 4.0',   
   N'Microsoft.Jet.OLEDB.4.0',  
   N'c:\data\distqry',  
   NULL,  
   N'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];  

F.F. Verwenden des Microsoft OLE DB-Anbieters für DB2Using the Microsoft OLE DB Provider for DB2

Im folgenden Beispiel wird der Verbindungsserver DB2 erstellt, der Microsoft OLE DB Provider for DB2 verwendet.The following example creates a linked server named DB2 that uses the Microsoft OLE DB Provider for DB2.

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

G.G. Hinzufügen eines Azure SQL-DatenbankAzure SQL Database als Verbindungs Server zur Verwendung mit verteilten Abfragen in Cloud-und lokalen DatenbankenAdd a Azure SQL-DatenbankAzure SQL Database as a Linked Server For Use With Distributed Queries on Cloud and On-Premises Databases

Sie können eine Azure SQL-DatenbankAzure SQL Database als Verbindungsserver hinzufügen und diesen dann für verteilte Abfragen verwenden, die lokale Datenbanken und Clouddatenbanken umfassen.You can add a Azure SQL-DatenbankAzure SQL Database as a linked server and then use it with distributed queries that span the on-premises and cloud databases. Dies ist eine Komponente für Daten Bank Hybridlösungen, die lokale Unternehmensnetzwerke und die Azure-Cloud umfassen.This is a component for database hybrid solutions spanning on-premises corporate networks and the Azure cloud.

Das Produkt "SQL ServerSQL Server" enthält das Feature "verteilte Abfrage", mit dem Sie Abfragen zum Kombinieren von Daten aus lokalen Datenquellen und Daten aus Remote Quellen (einschließlich Daten aus nicht-SQL ServerSQL Server-Datenquellen), die als Verbindungs Server definiert sind, schreiben können.The SQL ServerSQL Server box product contains the distributed query feature, which allows you to write queries to combine data from local data sources and data from remote sources (including data from non- SQL ServerSQL Server data sources) defined as linked servers. Jede Azure SQL-DatenbankAzure SQL Database (außer der virtuellen Masterdatenbank) kann als einzelner Verbindungsserver hinzugefügt und wie jede andere Datenbank direkt in Datenbankanwendungen verwendet werden.Every Azure SQL-DatenbankAzure SQL Database (except the virtual master) can be added as an individual linked server and then used directly in your database applications as any other database.

Die Vorteile der Verwendung einer Azure SQL-DatenbankAzure SQL Database sind: Verwaltbarkeit, Hochverfügbarkeit, Skalierbarkeit, ein vertrautes Entwicklungsmodell sowie ein relationales Datenmodell.The benefits of using Azure SQL-DatenbankAzure SQL Database include manageability, high availability, scalability, working with a familiar development model, and a relational data model. Auf welche Weise eine Azure SQL-DatenbankAzure SQL Database von Ihrer Datenbank in der Cloud verwendet wird, richtet sich nach den Anwendungsanforderungen.The requirements of your database application determine how it would use Azure SQL-DatenbankAzure SQL Database in the cloud. Sie können alle Daten gleichzeitig auf eine Azure SQL-DatenbankAzure SQL Database verschieben oder einige Daten stufenweise umlagern, während die übrigen Daten in der lokalen Umgebung verbleiben.You can move all of your data at once to Azure SQL-DatenbankAzure SQL Database, or progressively move some of your data while keeping the remaining data on-premises. Für eine solche Hybrid Datenbankanwendung können Azure SQL-DatenbankAzure SQL Database jetzt als Verbindungs Server hinzugefügt werden, und die Datenbankanwendung kann verteilte Abfragen ausgeben, um Daten aus Azure SQL-DatenbankAzure SQL Database-und lokalen Datenquellen zu kombinieren.For such a hybrid database application, Azure SQL-DatenbankAzure SQL Database can now be added as linked servers and the database application can issue distributed queries to combine data from Azure SQL-DatenbankAzure SQL Database and on-premises data sources.

Im folgenden finden Sie ein einfaches Beispiel für das Herstellen einer Verbindung mit einem Azure SQL-DatenbankAzure SQL Database mithilfe verteilter Abfragen:Here's a simple example explaining how to connect to a Azure SQL-DatenbankAzure SQL Database using distributed queries:

-- Configure the linked server  
-- Add one Azure SQL DB as Linked Server  
EXEC sp_addlinkedserver  
  @server='myLinkedServer', -- here you can specify the name of the linked server  
  @srvproduct='',       
  @provider='sqlncli', -- using SQL Server Native Client  
  @datasrc='myServer.database.windows.net',   -- add here your server name  
  @location='',  
  @provstr='',  
  @catalog='myDatabase'  -- add here your database name as initial catalog (you cannot connect to the master database)  

-- Add credentials and options to this linked server  
EXEC sp_addlinkedsrvlogin  
  @rmtsrvname = 'myLinkedServer',  
  @useself = 'false',  
  @rmtuser = 'myLogin',             -- add here your login on Azure DB  
  @rmtpassword = 'myPassword' -- add here your password on Azure DB  

EXEC sp_serveroption 'myLinkedServer', 'rpc out', true;  

-- Now you can use the linked server to execute 4-part queries  
-- You can create a new table in the Azure DB  
EXEC ('CREATE TABLE t1tutut2(col1 int not null CONSTRAINT PK_col1 PRIMARY KEY CLUSTERED (col1) )') at myLinkedServer  
-- Insert data from your local SQL Server  
EXEC ('INSERT INTO t1tutut2 VALUES(1),(2),(3)') at myLinkedServer  
  
-- Query the data using 4-part names  
SELECT * FROM myLinkedServer.myDatabase.dbo.myTable  

Siehe auchSee Also

Gespeicherte Prozeduren (für verteilte Abfragen Transact-SQL) Distributed Queries Stored Procedures (Transact-SQL)
sp_addlinkedsrvlogin (Transact-SQL) sp_addlinkedsrvlogin (Transact-SQL)
sp_addserver (Transact-SQL) sp_addserver (Transact-SQL)
sp_dropserver (Transact-SQL) sp_dropserver (Transact-SQL)
sp_serveroption (Transact-SQL) sp_serveroption (Transact-SQL)
sp_setnetname (Transact-SQL) sp_setnetname (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL) System Stored Procedures (Transact-SQL)
Systemtabellen (Transact-SQL)System Tables (Transact-SQL)