sp_addlinkedserver (Transact-SQL)

bağlantılı sunucu oluşturur.bağlantılı sunucu, dağıtılmış, farklı yapılardaki sorguları OLE DB veri kaynaklarına erişim sağlar.bağlantılı sunucu kullanarak oluşturulduktan sonra sp_addlinkedserverdağıtılmış, bu sunucuda sorgularını çalıştırabilirsiniz.Bağlantılı sunucu örnek tanımlıysa SQL Server, uzak saklı yordamlar yürütüldü.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @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.If SQL Server, provider_name, data_source, location, provider_string, ve catalog belirtilmesi gerekmez.

  • [ @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.(SQLNCLI kullanın ve SQL Server en son sürüm yönlendirir SQL Server Yerel istemci OLE DB sağlayıcı.) OLE DB sağlayıcı, kayıt defterinde belirtilen olan PROGID ile kayıtlı olması bekleniyordu.

  • [ @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.

    Not

    Yansıtılmış bir veritabanına, bağlantı dize veritabanı adı içermelidir.Bu ad, veri erişim sağlayıcı tarafından yerine çalışma girişimlerinin etkinleştirmek gereklidir.Veritabanı içinde belirtilen @ provstr or @ Katalog parametresi.Isteğe bağlı olarak, bağlantı dizesi yerine çalışma ortağı adı sağlayabilirsiniz.Daha fazla bilgi için bkz:Başlangıç bağlantı, bir veritabanına oturum yansıtma yapma.

  • [ @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.Bağlantılı sunucu karşı tanımlı bir örnek, SQL Server, katalog, bağlı sunucu eşleştirilmiş varsayılan veritabanı gösterir.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

Yok.

Remarks

Aşağıdaki tablo, bağlantılı sunucu olabilir yollarını gösterir küme için OLE DB erişilen bir veri kaynağı.bağlantılı sunucu olabilir küme birden fazla yol; belirli bir veri kaynağı kurma olabilir birden çok satır için bir veri kaynağı türü.Bu tablo aynı zamanda gösterir sp_addlinkedserver parametre değerlerini ayarlama için bağlantılı sunucu.

Uzak OLE DB veri kaynak

OLE DB sağlayıcı

product_name

provider_name

data_source

Konum

provider_string

Katalog

SQL Server

Microsoft SQL Server Yerel istemci OLE DB sağlayıcı

SQL Server1 (varsayılan)

 

 

 

 

 

SQL Server

Microsoft SQL Server Yerel istemci OLE DB sağlayıcı

 

sqlncli

Ağ adı SQL Server (varsayılan örnek için)

 

 

Veritabanı adı (isteğe bağlı)

SQL Server

Microsoft SQL Server Yerel istemci OLE DB sağlayıcı

 

sqlncli

Sunucuadı\INSTANCENAME (özel örnek için)

 

 

Veritabanı adı (isteğe bağlı)

Oracle

Microsoft Oracle için OLE DB sağlayıcı

Tüm2

MSDAORA

SQL * NET bir diğer ad için bir Oracle veritabanı

 

 

 

Oracle, 8 ve daha sonraki sürüm

Oracle OLE DB sağlayıcı

Herhangi biri

OraOLEDB.Oracle

Oracle veritabanı diğer ad ad adı

 

 

 

Erişim/Jet

Jet için Microsoft OLE DB sağlayıcı

Herhangi biri

Microsoft.Jet.OLEDB.4.0

Jet veritabanı dosyasının tam yol

 

 

 

ODBC veri kaynak

ODBC için Microsoft OLE DB sağlayıcı

Herhangi biri

MSDASQL

Sistem, bu DSN ODBC veri kaynağı

 

 

 

ODBC veri kaynak

Microsoft ODBC için OLE DB sağlayıcı

Herhangi biri

MSDASQL

 

 

ODBC bağlantı dizesi

 

Dosya sistemi

Microsoft Dizin Oluşturma hizmet için OLE DB sağlayıcı

Herhangi biri

msidxs

Dizin Oluşturma hizmet katalog adı

 

 

 

Microsoft Excel elektronik tablosu

Microsoft Jet için OLE DB sağlayıcı

Herhangi biri

Microsoft.Jet.OLEDB.4.0

Excel dosyasının tam yol

 

Excel 5.0

 

IBM DB2 veritabanını

Microsoft DB2 için OLE DB sağlayıcı

Herhangi biri

DB2OLEDB

 

 

Bkz: Microsoft OLE DB sağlayıcı for DB2 belgeleri.

DB2 veritabanını kataloğu adı

1 Uzak örneğini ağ adı ile aynı olacak şekilde bağlantılı sunucu adı bu şekilde, bağlantılı sunucu ayarlama zorlarSQL Server. Kullanımı data_source Sunucu belirtmek için .

2 "Herhangi" gösterir ürün adı herhangi bir şey olabilir.

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.Eski sağlayıcı adı SQLOLEDB, belirttiğiniz olsa bile kataloğa kalıcı yaptığınızda SQLNCLI değiştirilir.

The data_source, location, provider_string, and catalog parameters identify the database or databases the bağlantılı sunucu points to. Bu parametrelerden biri null (BOş) olduğunda, ilgili OLE DB başlatma özellik ayarlı değil.

Dosya adları için OLE DB veri kaynakları'nı işaret edecek biçimde belirttiğinizde, kümelenmiş bir ortamda konumu belirtmek için Evrensel adlandırma kuralı ad (UNC) veya paylaşılan bir sürücü kullanın.

sp_addlinkedserver kullanıcı tanımlı bir işlem içinde yürütülemiyor.

Security noteSecurity Note:

bağlantılı sunucu kullanarak oluşturulduğunda sp_addlinkedserver, tüm yerel oturumları için varsayılan self-mapping eklenir.Için olmayan-SQL Server sağlayıcıları SQL Server Kimliği doğrulanan oturumların altında sağlayıcısına erişmek mümkün olabilir SQL Server Hizmet hesabı'nı tıklatın. Yöneticiler, kullanmayı düşünmelisiniz sp_droplinkedsrvlogin <linkedserver_name>, NULL Genel eşleştirmesini kaldırmak için .

İzinler

ALTER ANY BAĞLANTıLı SUNUCU iznine gerek duyar.

Örnekler

C.Microsoft SQL Server yerel istemci OLE DB sağlayıcı'ı kullanma

Aşağıdaki örnek, adlı bağlantılı sunucu oluşturur. SEATTLESales. Ürün adı SQL Server, hiçbir sağlayıcı adı kullanılır.

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

Aşağıdaki örnek, bir sunucunun oluşturur. S1_instance1 örneğinde SQL Server kullanarak SQL Server Yerel istemci OLE DB sağlayıcı.

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

b.Microsoft Access için Microsoft OLE DB sağlayıcı kullanarak

Microsoft.Jet.OLEDB.4.0 sağlayıcı 2002-2003 biçimini kullanan Microsoft Access veritabanlarına bağlanır.Aşağıdaki örnek, adlı bağlantılı sunucu oluşturur. SEATTLE Mktg.

Not

Bu örnekte, her iki varsayar Microsoft Erişim ve örnek Northwind veritabanı geri yüklenir ve Northwind veritabanı C:\Msoffice\Access\Samples bulunur.

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

Sağlayıcı Microsoft.ACE.OLEDB.12.0 2007 biçimini kullanan Microsoft Access veritabanlarına bağlanır.Aşağıdaki örnek, adlı bağlantılı sunucu oluşturur. SEATTLE Mktg.

Not

Bu örnekte, her iki varsayar Microsoft Erişim ve örnek Northwind veritabanı geri yüklenir ve Northwind veritabanı C:\Msoffice\Access\Samples bulunur.

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

Oracle için Microsoft OLE DB sağlayıcı kullanarak

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.Microsoft OLE DB sağlayıcı için ODBC data_source parametresiyle kullanma

Aşağıdaki örnek, adlı bağlantılı sunucu oluşturur. SEATTLE Payroll kullanan Microsoft OLE DB sağlayıcı for ODBC)MSDASQL) ve data_source Parametre.

Not

Belirtilen ODBC veri kaynak bağlantılı sunucu kullanmadan önce adı Sistem DSN sunucuda tanımlanmış olmalıdır.

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

e.Excel elektronik tablosu için Microsoft OLE DB sağlayıcı'ı kullanma

Kullanarak bir bağlantılı sunucu tanımı oluşturmak için Microsoft 1997-2003 Biçimindeki bir Excel elektronik tablosu erişmek, Jet için OLE DB sağlayıcı önce oluşturmanız adlandırılmış bir aralık Excel'de sütunları ile satırları seçmek için Excel çalışma sayfasının belirterek. Aralık adını, sonra dağıtılmış sorguda tablo adı olarak başvurulabilir.

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

Bir Excel çalışma sayfasından verilere erişmek için , bir hücre aralık, bir adla ilişkilendirebilirsiniz.Belirtilen adlandırılan aralığa erişmek için aşağıdaki sorgu kullanılabilir. SalesData bağlantılı sunucu kullanarak bir tablo olarak önceden küme.

SELECT *
   FROM ExcelSource...SalesData
GO

If SQL Server çalışan bir uzak paylaşıma erişim için devre dışı olan bir etki alanı hesabı altında bir UNC yol yerine eşlenmiş bir sürücüyü kullanılabilir.

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

ACE sağlayıcı bir Excel elektronik tablosu biçiminde kullanımda Excel 2007 bağlanmak için .

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.Bir metin dosyasına erişmek için Microsoft Jet için OLE DB sağlayıcı'ı kullanma

Aşağıdaki örnek, bir bağlantılı sunucu olarak Access .mdb dosyasını tabloları bağlamadan dosyaları metin dosyaları doğrudan erişmek için oluşturur.Sağlayıcı olur. Microsoft.Jet.OLEDB.4.0 Sağlayıcı dizesi Text.

Veri kaynağı metin dosyalarını içeren dizinin tam yoludur.Metin dosyaları yapısını tanımlar, BIR schema.ini dosyası, metin dosyaları ile aynı dizinde bulunması gerekir.Bir Schema.ini dosyası oluşturma hakkında daha fazla bilgi için Jet veritabanı altyapısı belgelerine bakın.

--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.DB2 için Microsoft OLE DB sağlayıcı kullanarak

Aşağıdaki örnek, adlı bağlantılı sunucu oluşturur. DB2 kullanan 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;'