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

Si applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) SìIstanza gestita di SQL di AzureAzure SQL Managed InstanceYesIstanza gestita di SQL di AzureAzure SQL Managed InstanceSi applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) SìIstanza gestita di SQL di AzureAzure SQL Managed InstanceYesIstanza gestita di SQL di AzureAzure SQL Managed Instance

Crea un server collegato,Creates a linked server. il quale consente l'accesso a query distribuite ed eterogenee in origini dati OLE DB.A linked server allows for access to distributed, heterogeneous queries against OLE DB data sources. Dopo la creazione di un server collegato tramite sp_addlinkedserver, è possibile eseguire query distribuite su questo server.After a linked server is created by using sp_addlinkedserver, distributed queries can be run against this server. Se il server collegato viene definito come un'istanza di SQL ServerSQL Server, è possibile eseguire stored procedure remote.If the linked server is defined as an instance of SQL ServerSQL Server, remote stored procedures can be executed.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

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

ArgomentiArguments

[ @server =] * ' server ' * [ @server = ] 'server'
Nome del server collegato da creare.Is the name of the linked server to create. server è di tipo sysnamee non prevede alcun valore predefinito.server is sysname, with no default.

[ @srvproduct =] * ' product_name ' * [ @srvproduct = ] 'product_name'
Nome del prodotto dell'origine dati OLE DB da aggiungere come server collegato.Is the product name of the OLE DB data source to add as a linked server. product_name è di tipo nvarchar ( 128 ) e il valore predefinito è null.product_name is nvarchar( 128 ), with a default of NULL. Se non è necessario specificare SQL Server, provider_name, data_source, location, provider_stringe Catalog .If SQL Server, provider_name, data_source, location, provider_string, and catalog do not have to be specified.

[ @provider =] * ' provider_name ' * [ @provider = ] 'provider_name'
ProgID univoco del provider OLE DB che corrisponde a questa origine dati.Is the unique programmatic identifier (PROGID) of the OLE DB provider that corresponds to this data source. provider_name deve essere univoco per il provider di OLE DB specificato installato nel computer corrente.provider_name must be unique for the specified OLE DB provider installed on the current computer. provider_name è di tipo nvarchar (128) e il valore predefinito è null. Tuttavia, se provider_name viene omesso, viene utilizzato SQLNCLI.provider_name is nvarchar(128), with a default of NULL; however, if provider_name is omitted, SQLNCLI is used.

Nota

Utilizzando SQLNCLI viene reindirizzato SQL ServerSQL Server alla versione più recente del SQL ServerSQL Server provider OLE DB di Native Client.Using SQLNCLI will redirect SQL ServerSQL Server to the latest version of SQL ServerSQL Server Native Client OLE DB Provider. Il provider OLE DB deve essere registrato nel Registro di sistema con il valore PROGID specificato.The OLE DB provider is expected to be registered with the specified PROGID in the registry.

Importante

Il provider Microsoft OLE DB per SQL Server (SQLOLEDB) e il provider OLE DB SQL Server Native Client (SQLNCLI) precedenti rimangono deprecati e non è consigliabile usarli per nuovi progetti di sviluppo.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. Usare invece il nuovo Microsoft OLE DB Driver per SQL Server (MSOLEDBSQL) che verrà aggiornato con le funzionalità server più recenti.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 ' * [ @datasrc = ] 'data_source'
Nome dell'origine dati secondo la modalità di interpretazione del provider OLE DB.Is the name of the data source as interpreted by the OLE DB provider. data_source è di tipo nvarchar ( 4000 ).data_source is nvarchar( 4000 ). data_source viene passato come proprietà DBPROP_INIT_DATASOURCE per inizializzare il provider di OLE DB.data_source is passed as the DBPROP_INIT_DATASOURCE property to initialize the OLE DB provider.

[ @location =] * ' percorso ' * [ @location = ] 'location'
Posizione del database secondo la modalità di interpretazione del provider OLE DB.Is the location of the database as interpreted by the OLE DB provider. location è di tipo nvarchar ( 4000 ) e il valore predefinito è null.location is nvarchar( 4000 ), with a default of NULL. il percorso viene passato come proprietà DBPROP_INIT_LOCATION per inizializzare il provider di OLE DB.location is passed as the DBPROP_INIT_LOCATION property to initialize the OLE DB provider.

[ @provstr =] * ' provider_string ' * [ @provstr = ] 'provider_string'
Stringa di connessione specifica del provider OLE DB che consente di identificare un'origine dati univoca.Is the OLE DB provider-specific connection string that identifies a unique data source. provider_string è di tipo nvarchar ( 4000 ) e il valore predefinito è null.provider_string is nvarchar( 4000 ), with a default of NULL. provstr viene passato a IDataInitialize o impostato come proprietà DBPROP_INIT_PROVIDERSTRING per inizializzare il provider di OLE DB.provstr is either passed to IDataInitialize or set as the DBPROP_INIT_PROVIDERSTRING property to initialize the OLE DB provider.

Quando il server collegato viene creato con il SQL ServerSQL Server provider di OLE DB di Native client, l'istanza può essere specificata utilizzando la parola chiave server come server =ServerName \ NomeIstanza per specificare un'istanza specifica di SQL ServerSQL Server .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. nomeserver è il nome del computer in cui SQL ServerSQL Server è in esecuzione e NomeIstanza è il nome dell'istanza specifica di SQL ServerSQL Server a cui verrà connesso l'utente.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.

Nota

Per accedere a un database con mirroring, è necessario che la stringa di connessione contenga il nome del database,To access a mirrored database, a connection string must contain the database name. al fine di consentire i tentativi di failover da parte del provider di accesso ai dati.This name is necessary to enable failover attempts by the data access provider. Il database può essere specificato nel parametro ** @ provstr** o ** @ Catalog** .The database can be specified in the @provstr or @catalog parameter. Facoltativamente, la stringa di connessione può specificare anche il nome di un partner di failover.Optionally, the connection string can also supply a failover partner name.

[ @catalog =] * ' catalogo ' * [ @catalog = ] 'catalog'
Catalogo da utilizzare per una connessione al provider OLE DBIs the catalog to be used when a connection is made to the OLE DB provider. Catalog è di tipo sysnamee il valore predefinito è null.catalog is sysname, with a default of NULL. il Catalogo viene passato come proprietà DBPROP_INIT_CATALOG per inizializzare il provider di OLE DB.catalog is passed as the DBPROP_INIT_CATALOG property to initialize the OLE DB provider. Quando il server collegato viene definito in un'istanza di SQL ServerSQL Server, il catalogo si riferisce al database predefinito a cui viene eseguito il mapping del server collegato.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.

Valori del codice restituitoReturn Code Values

0 (operazione completata) o 1 (operazione non riuscita)0 (success) or 1 (failure)

Set di risultatiResult Sets

No.None.

OsservazioniRemarks

Nella tabella seguente vengono descritte le possibili configurazioni di un server collegato per origini dati accessibili tramite OLE DB.The following table shows the ways that a linked server can be set up for data sources that can be accessed through OLE DB. Un server collegato può essere configurato in modi diversi per un'origine dati specifica. Per un tipo di origine dati possono essere disponibili più righe.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. Questa tabella mostra anche i valori dei parametri sp_addlinkedserver da usare per la configurazione del server collegato.This table also shows the sp_addlinkedserver parameter values to be used for setting up the linked server.

Origine dati OLE DB remotaRemote OLE DB data source Provider OLE DBOLE DB provider product_nameproduct_name provider_nameprovider_name data_sourcedata_source posizionelocation provider_stringprovider_string Catalogocatalog
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL ServerProvider OLE DB per Native ClientSQL ServerSQL Server Native Client OLE DB Provider SQL ServerSQL Server 1 (impostazione predefinita)1 (default)
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL ServerProvider OLE DB per Native ClientSQL ServerSQL Server Native Client OLE DB Provider SQLNCLISQLNCLI Nome di rete di SQL ServerSQL Server (per l'istanza predefinita)Network name of SQL ServerSQL Server (for default instance) Nome di database (facoltativo)Database name (optional)
SQL ServerSQL Server MicrosoftMicrosoft SQL ServerSQL ServerProvider OLE DB per Native ClientSQL ServerSQL Server Native Client OLE DB Provider SQLNCLISQLNCLI nomeserver \ InstanceName (per istanza specifica)servername\instancename (for specific instance) Nome di database (facoltativo)Database name (optional)
Oracle, versione 8 e successiveOracle, version 8 and later Provider Oracle per OLE DBOracle Provider for OLE DB QualsiasiAny OraOLEDB.OracleOraOLEDB.Oracle Alias per il database OracleAlias for the Oracle database
Access/JetAccess/Jet Provider Microsoft OLE DB per JetMicrosoft OLE DB Provider for Jet QualsiasiAny Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Percorso completo del file di database JetFull path of Jet database file
Origine dati ODBCODBC data source Provider Microsoft OLE DB per ODBCMicrosoft OLE DB Provider for ODBC QualsiasiAny MSDASQLMSDASQL DSN di sistema dell'origine dati ODBCSystem DSN of ODBC data source
Origine dati ODBCODBC data source Provider MicrosoftMicrosoft OLE DB per ODBCMicrosoftMicrosoft OLE DB Provider for ODBC QualsiasiAny MSDASQLMSDASQL Stringa di connessione ODBCODBC connection string
File systemFile system Provider MicrosoftMicrosoft OLE DB per il servizio di indicizzazioneMicrosoftMicrosoft OLE DB Provider for Indexing Service QualsiasiAny MSIDXSMSIDXS Nome del catalogo del Servizio di indicizzazioneIndexing Service catalog name
Foglio di calcolo di MicrosoftMicrosoft ExcelMicrosoftMicrosoft Excel Spreadsheet Provider MicrosoftMicrosoft OLE DB per JetMicrosoftMicrosoft OLE DB Provider for Jet QualsiasiAny Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Percorso completo del file di ExcelFull path of Excel file Excel 5,0Excel 5.0
Database IBM DB2IBM DB2 Database Provider MicrosoftMicrosoft OLE DB per DB2MicrosoftMicrosoft OLE DB Provider for DB2 QualsiasiAny DB2OLEDBDB2OLEDB Vedere MicrosoftMicrosoft la documentazione del Provider OLE DB per DB2.See MicrosoftMicrosoft OLE DB Provider for DB2 documentation. Nome del catalogo del database DB2Catalog name of DB2 database

1 questo modo per configurare un server collegato impone che il nome del server collegato corrisponda al nome di rete dell'istanza remota di SQL ServerSQL Server .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. Utilizzare data_source per specificare il server.Use data_source to specify the server.

2 "any" indica che il nome del prodotto può essere qualsiasi elemento.2 "Any" indicates that the product name can be anything.

Il MicrosoftMicrosoft SQL ServerSQL Server provider di OLE DB di Native Client è il provider utilizzato con SQL ServerSQL Server se non viene specificato alcun nome di provider o se SQL ServerSQL Server viene specificato come nome del prodotto.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. Anche se si specifica il nome del provider meno recente, SQLOLEDB, verrà modificato in SQLNCLI se persiste nel catalogo.Even if you specify the older provider name, SQLOLEDB, it will be changed to SQLNCLI when persisted to the catalog.

I parametri data_source, location, provider_stringe Catalog identificano il database o i database a cui punta il server collegato.The data_source, location, provider_string, and catalog parameters identify the database or databases the linked server points to. Se uno di questi parametri è NULL, la proprietà di inizializzazione OLE DB corrispondente non viene impostata.If any one of these parameters is NULL, the corresponding OLE DB initialization property is not set.

In un ambiente cluster, quando si specificano nomi di file che puntano a origini dati OLE DB, la posizione deve essere specificata nel formato UNC oppure deve corrispondere a un'unità condivisa.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.

Impossibile eseguire sp_addlinkedserver in una transazione definita dall'utente.sp_addlinkedserver cannot be executed within a user-defined transaction.

Importante

Quando si crea un server collegato utilizzando sp_addlinkedserver, viene aggiunto un mapping automatico predefinito per tutti gli account di accesso locali.When a linked server is created by using sp_addlinkedserver, a default self-mapping is added for all local logins. Per i SQL ServerSQL Server provider non, SQL ServerSQL Server gli account di accesso autenticati potrebbero essere in grado di accedere al provider con l' SQL ServerSQL Server account del servizio.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. Si consiglia agli amministratori di considerare l'utilizzo di sp_droplinkedsrvlogin <linkedserver_name>, NULL per rimuovere il mapping globale.Administrators should consider using sp_droplinkedsrvlogin <linkedserver_name>, NULL to remove the global mapping.

AutorizzazioniPermissions

L' sp_addlinkedserver istruzione richiede l' ALTER ANY LINKED SERVER autorizzazione.The sp_addlinkedserver statement requires the ALTER ANY LINKED SERVER permission. (Il SQL Server Management StudioSQL Server Management Studio La finestra di dialogo nuovo server collegato viene implementata in modo da richiedere l'appartenenza al sysadmin ruolo predefinito del server.(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.)

EsempiExamples

R.A. Uso del provider di OLE DB Microsoft SQL ServerUsing the Microsoft SQL Server OLE DB Provider

Nell'esempio seguente viene creato un server collegato denominato SEATTLESales.The following example creates a linked server named SEATTLESales. Il nome del prodotto è SQL Server e non vengono utilizzati nomi di provider.The product name is SQL Server, and no provider name is used.

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

Nell'esempio seguente viene creato un server collegato S1_instance1 in un'istanza di utilizzando SQL ServerSQL Server il SQL ServerSQL Server driver OLE DB.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';  

Nell'esempio seguente viene creato un server collegato S1_instance1 in un'istanza di utilizzando SQL ServerSQL Server il SQL ServerSQL Server provider di OLE DB di Native Client.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.

Importante

Il provider OLE DB per SQL Server Native Client (SQLNCLI) rimane deprecato e non è consigliabile usarlo per nuovi progetti di sviluppo.SQL Server Native Client OLE DB provider (SQLNCLI) remains deprecated and it is not recommended to use it for new development work. Usare invece il nuovo Microsoft OLE DB Driver per SQL Server (MSOLEDBSQL) che verrà aggiornato con le funzionalità server più recenti.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. Utilizzo del provider Microsoft OLE DB per Microsoft AccessUsing the Microsoft OLE DB Provider for Microsoft Access

Il provider Microsoft.Jet.OLEDB.4.0 si connette al database di Microsoft Access che utilizza il formato 2002-2003.The Microsoft.Jet.OLEDB.4.0 provider connects to Microsoft Access databases that use the 2002-2003 format. Nell'esempio seguente viene creato un server collegato denominato SEATTLE Mktg.The following example creates a linked server named SEATTLE Mktg.

Nota

In questo esempio si presuppone che sia l' MicrosoftMicrosoft accesso sia il database Northwind di esempio siano installati e che il database Northwind si trovi in C:\MSOffice\Access\Samples.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  

Il provider Microsoft.ACE.OLEDB.12.0 si connette al database di Microsoft Access che utilizza il formato 2007.The Microsoft.ACE.OLEDB.12.0 provider connects to Microsoft Access databases that use the 2007 format. Nell'esempio seguente viene creato un server collegato denominato SEATTLE Mktg.The following example creates a linked server named SEATTLE Mktg.

Nota

In questo esempio si presuppone che sia l' MicrosoftMicrosoft accesso sia il database Northwind di esempio siano installati e che il database Northwind si trovi in C:\MSOffice\Access\Samples.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. Utilizzo del provider Microsoft OLE DB per ODBC con il parametro data_sourceUsing the Microsoft OLE DB Provider for ODBC with the data_source parameter

Nell'esempio seguente viene creato un server collegato denominato SEATTLE Payroll che utilizza il MicrosoftMicrosoft provider OLE DB per ODBC ( MSDASQL ) e il parametro data_source .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.

Nota

Il nome dell'origine dati ODBC specificato deve essere definito come System DSN nel server prima di utilizzare il server collegato.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. Utilizzo del provider Microsoft OLE DB per un foglio di calcolo di ExcelUsing the Microsoft OLE DB Provider for Excel spreadsheet

Per creare una definizione di server collegato utilizzando il MicrosoftMicrosoft provider di OLE DB per Jet per accedere a un foglio di calcolo di Excel nel formato 1997-2003, creare innanzitutto un intervallo denominato in Excel specificando le colonne e le righe del foglio di lavoro di Excel da selezionare.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. È quindi possibile fare riferimento al nome dell'intervallo come a un nome di tabella in una query distribuita.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  

Per accedere ai dati di un foglio di calcolo di Microsoft Excel, assegnare un nome a un intervallo di celle.To access data from an Excel spreadsheet, associate a range of cells with a name. Per accedere a un intervallo denominato SalesData come tabella tramite il server collegato impostato nell'esempio precedente è possibile utilizzare la query seguente.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  

Se SQL ServerSQL Server è in esecuzione in un account di dominio che ha accesso a una condivisione remota, è possibile utilizzare un percorso UNC invece di un'unità sulla quale viene eseguito il mapping.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';  

Per connettersi a un foglio di calcolo di Excel nel formato 2007 utilizzare il provider ACE.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. Utilizzo del provider Microsoft OLE DB per Jet per accedere a un file di testoUsing the Microsoft OLE DB Provider for Jet to access a text file

Nell'esempio seguente viene creato un server collegato per accedere direttamente a file di testo senza dover collegare i file come tabelle in un file di Access con estensione mdb.The following example creates a linked server for directly accessing text files, without linking the files as tables in an Access .mdb file. Il provider è Microsoft.Jet.OLEDB.4.0 e la stringa corrispondente è Text.The provider is Microsoft.Jet.OLEDB.4.0 and the provider string is Text.

L'origine dati corrisponde al percorso completo della directory che include i file di testo.The data source is the full path of the directory that contains the text files. In questa directory è necessario creare un file schema.ini che descriva la struttura dei file di testo.A schema.ini file, which describes the structure of the text files, must exist in the same directory as the text files. Per ulteriori informazioni sulla creazione di un file Schema.ini, vedere la documentazione del motore di database Jet.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. Utilizzo del provider Microsoft OLE DB per DB2Using the Microsoft OLE DB Provider for DB2

Nell'esempio seguente viene creato un server collegato denominato DB2 in cui viene utilizzato Microsoft OLE DB Provider for DB2.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. Aggiungere un database SQL di AzureAzure SQL Database come server collegato per l'uso con query distribuite in database cloud e localiAdd a database SQL di AzureAzure SQL Database as a Linked Server For Use With Distributed Queries on Cloud and On-Premises Databases

È possibile aggiungere database SQL di AzureAzure SQL Database come server collegato e quindi utilizzato con query distribuite che si estendono su database locali e cloud.You can add a database SQL di AzureAzure SQL Database as a linked server and then use it with distributed queries that span the on-premises and cloud databases. Si tratta di un componente per le soluzioni ibride di database che si estendono su reti aziendali locali e sul cloud di Azure.This is a component for database hybrid solutions spanning on-premises corporate networks and the Azure cloud.

Il SQL ServerSQL Server prodotto box contiene la funzionalità query distribuite, che consente di scrivere query per combinare i dati da origini dati locali e dati da origini remote, inclusi i dati provenienti da SQL ServerSQL Server origini non dati, definiti come server collegati.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. Ogni database SQL di AzureAzure SQL Database (ad eccezione del database master virtuale) può essere aggiunto come singolo server collegato e quindi essere utilizzato direttamente nelle applicazioni di database come qualsiasi altro database.Every database SQL di AzureAzure 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.

I vantaggi offerti da database SQL di AzureAzure SQL Database includono gestibilità, disponibilità elevata, scalabilità, compatibilità con un modello di sviluppo noto e un modello di dati relazionale.The benefits of using database SQL di AzureAzure SQL Database include manageability, high availability, scalability, working with a familiar development model, and a relational data model. I requisiti dell'applicazione di database determinano la modalità di utilizzo di database SQL di AzureAzure SQL Database nel cloud.The requirements of your database application determine how it would use database SQL di AzureAzure SQL Database in the cloud. È possibile spostare contemporaneamente tutti i dati in database SQL di AzureAzure SQL Database o spostare progressivamente alcuni dati mantenendo quelli rimanenti in locale.You can move all of your data at once to database SQL di AzureAzure SQL Database, or progressively move some of your data while keeping the remaining data on-premises. Per un'applicazione di database ibrido di questo tipo, database SQL di AzureAzure SQL Database ora è possibile aggiungerli come server collegati e l'applicazione di database può emettere query distribuite per combinare i dati provenienti da database SQL di AzureAzure SQL Database e dalle origini dati locali.For such a hybrid database application, database SQL di AzureAzure SQL Database can now be added as linked servers and the database application can issue distributed queries to combine data from database SQL di AzureAzure SQL Database and on-premises data sources.

Ecco un semplice esempio che illustra come connettersi a un database SQL di AzureAzure SQL Database usando le query distribuite:Here's a simple example explaining how to connect to a database SQL di AzureAzure SQL Database using distributed queries:

-- Configure the linked server  
-- Add one Azure SQL Database 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  

Vedere ancheSee Also

Stored procedure per query distribuite ()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)
Stored procedure di sistema (Transact-SQL) System Stored Procedures (Transact-SQL)
Tabelle di sistema (Transact-SQL)System Tables (Transact-SQL)