sp_addlinkedserver (Transact-SQL)
bağlantılı sunucuoluşturur.bağlantılı sunucu dağıtılmış, türdeş olmayan sorgular ole DB veri kaynaklarına erişim sağlar.bağlantılı sunucu kullanılarak oluşturulduktan sonra sp_addlinkedserverve dağıtılmış sorgular bu sunucuda çalıştırılabilir.bağlantılı sunucu örnek tanımlanır, SQL Server, uzak saklı yordamlar çalıştırılabilir.
Sözdizimi
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'
Oluşturmak için bağlantılı sunucu adıdır.serverİş sysname, ile hiçbir varsayılan.[ @srvproduct= ] 'product_name'
bağlantılı sunucuolarak eklemek için ole DB veri kaynak ürün adıdır.product_nameolan nvarchar(128), varsayılan değer null.If SQL Server, provider_name, data_source, location, provider_string, and catalog do not have to be specified.[ @sağlayıcı= ] 'provider_name'
Bu veri kaynakkarşılık gelen ole DBsağlayıcı için benzersiz programlama kimliğini (ProgID) ' dir. provider_nameGeçerli bilgisayarda yüklü belirtilen ole DB sağlayıcı için benzersiz olmalıdır.provider_nameİş nvarchar(128), varsayılan değer null; Ancak, provider_name olan SQLNCLI atlanırsa kullanılır.(SQLNCLI kullanın ve SQL Server Yönlendir'ın en son sürüm yerel istemci ole DB sağlayıcısıSQL Server .) ole DBsağlayıcı kayıt defteri belirtilen ProgID ile kayıtlı olması beklenen[ @datasrc= ] 'data_source'
Veri kaynak ole DB sağlayıcıtarafından yorumlandığı haliyle adıdır.data_sourceis nvarchar(4000).data_sourceole DBsağlayıcıbaşlatmak için DBPROP_INIT_DATASOURCE özellik olarak geçirilir.[ @location= ] 'location'
ole DB sağlayıcıtarafından yorumlanan veritabanının konumu aynıdır.locationolan nvarchar(4000), varsayılan değer null.locationole DBsağlayıcıbaşlatmak için DBPROP_INIT_LOCATION özellik olarak geçirilir.[ @provstr= ] 'provider_string'
ole DBsağlayıcı-benzersiz bir veri kaynaktanımlayan belirli bağlantı dizesi . provider_stringolan nvarchar(4000), varsayılan değer null.provstrya da geçirilir IDataInitialize veya ole DBsağlayıcıbaşlatmak için DBPROP_INIT_PROVIDERSTRING özellik olarak küme .bağlantılı sunucu oluşturulduğunda karşı SQL Server yerel istemci ole DBsağlayıcı, örnek sunucu server anahtar sözcüğünü kullanarak belirtilebilir = servername\instancename , belirli bir örnek belirtmek için SQL Server.servernamebilgisayarın adı SQL Server çalışıyor, ve instancename belirli örnek adı SQL Server için kullanıcı bağlanacaktır.
Not
Yansıtılmış bir veritabanına erişmek için veritabanı adı bağlantı dizesi içermelidir.Bu ad, veri erişim sağlayıcıyük devretme girişimleri etkinleştirmek gereklidir.Veritabanı içinde belirtilen @ provstr veya @ katalog parametresi.İsteğe bağlı olarak, bağlantı dizesi yerine çalışma ortak adı sağlayabilirsiniz.Daha fazla bilgi için, bkz. Bir veritabanı oturumu yansıtma için başlangıç bağlantı yapma.
[ @catalog= ] 'catalog'
ole DB sağlayıcıbağlantı yapılırken kullanılacak katalogdur.catalogİş sysname, varsayılan değer null.catalogole DBsağlayıcıbaşlatmak için DBPROP_INIT_CATALOG özellik olarak geçirilir. Ne zaman bağlantılı sunucu tanımlı örnek karşı SQL Server, katalog başvuran bağlantılı sunucu eşlenen varsayılan veritabanı .
Dönüş Kodu Değerleri
0 (başarılı) veya 1 (hata)
Sonuç Kümeleri
Yok.
Açıklamalar
Aşağıdaki tablo , bir bağlantılı sunucu ole DBüzerinden erişilen veri kaynakları için küme olabilir yolu gösterilmektedir.bağlantılı sunucu küme belirli veri kaynakiçin birden fazla yol olabilir; Veri kaynak türü için birden fazla satır olabilir.Bu tablo aynı zamanda gösterir sp_addlinkedserver parametre değerlerini bağlantılı sunucukurma için kullanılacak.
Uzak ole DB veri kaynak |
ole DB sağlayıcı |
Ürün_Adı |
provider_name |
data_source |
Konum |
provider_string |
Katalog |
---|---|---|---|---|---|---|---|
SQL Server |
Microsoft SQL ServerYerel istemci ole DB sağlayıcısı |
SQL Server1 (varsayılan) |
|
|
|
|
|
SQL Server |
Microsoft SQL ServerYerel istemci ole DB sağlayıcısı |
|
SQLNCLI |
Ağ adını SQL Server ( varsayılan örnekiçin) |
|
|
Veritabanı adı (isteğe bağlı) |
SQL Server |
Microsoft SQL ServerYerel istemci ole DB sağlayıcısı |
|
SQLNCLI |
ServerName\ÖrnekAdı (için belirli bir örnek) |
|
|
Veritabanı adı (isteğe bağlı) |
Oracle |
MicrosoftOracle için ole DB sağlayıcısı |
Any2 |
MSDAORA |
SQL* Net diğer ad Oracle veritabanı |
|
|
|
Oracle, sürüm 8 ve sonrası |
ole DBiçin Oracle sağlayıcısı |
Herhangi biri |
OraOLEDB.Oracle |
Oracle veritabanı diğer adı |
|
|
|
Erişim/Jet |
Jet için Microsoft ole DB sağlayıcısı |
Herhangi biri |
Sağlayıcının Microsoft.Jet.OLEDB.4.0 |
Jet veritabanı dosyasıtam yol |
|
|
|
ODBC veri kaynağı |
odbc için Microsoft ole DB sağlayıcısı |
Herhangi biri |
MSDASQL |
Sistem DSN odbc veri kaynak |
|
|
|
ODBC veri kaynağı |
Microsoftodbc için ole DB sağlayıcısı |
Herhangi biri |
MSDASQL |
|
|
odbc bağlantı dizesi |
|
Dosya sistemi |
MicrosoftDizin Oluşturma Hizmeti için ole DB sağlayıcısı |
Herhangi biri |
MSİDXS DEYİMİ |
Dizin Oluşturma Hizmeti katalog adı |
|
|
|
MicrosoftExcel elektronik tablosu |
MicrosoftJet için ole DB sağlayıcısı |
Herhangi biri |
Sağlayıcının Microsoft.Jet.OLEDB.4.0 |
Excel dosyasının tam yol |
|
Excel 5,0 |
|
IBM DB2 veritabanı |
Microsoftole DB Provider for DB2 |
Herhangi biri |
DB2OLEDB |
|
|
Bakın Microsoft ole DB Provider for DB2 belgelerine. |
DB2 veritabanının katalog adı |
1 bağlantılı sunucu örnek uzak ağ adı ile aynı olacak şekilde adını bağlantılı sunucu kurma, bu şekilde zorlar SQL Server.Use data_source belirleme sunucusu.
2 "Herhangi" herhangi bir şey olabilir ürün adını gösterir.
Microsoft SQL Server Yerel istemci ole DBsağlayıcı olan sağlayıcı ile kullanılan SQL Server hiçbir sağlayıcı adı belirtilen ya da SQL Server belirtilen ürün adı.sqloledb, eski sağlayıcı adı belirtmek bile kataloğa kalıcı yaptığınızda SQLNCLI değiştirilir.
data_source, location, provider_string, Ve catalog veritabanı veya işaret bağlantılı sunucu için veritabanları parametrelerini belirle.Bu parametrelerden biri null ise, ilgili ole DB başlatma özellik kümedeğil.
ole DB veri kaynağına işaret etmek dosya adlarını belirtmek, kümelenmiş bir ortamda evrensel adlandırma kuralı (unc) adı veya bir paylaşılan sürücü konumu belirtmek için kullanın.
sp_addlinkedserver kullanıcı tanımlı bir işlem içinde yürütülemiyor.
Güvenlik Notu |
---|
bağlantılı sunucu oluşturulduğunda kullanarak sp_addlinkedserver, tüm yerel oturumları için varsayılan self-mapping eklenir.İçin olmayan-SQL Server sağlayıcıları, SQL Server doğrulanan oturumların altında sağlayıcı erişmek mümkün olabilir SQL Server hizmet hesabı.Yöneticiler düşünün kullanarak sp_droplinkedsrvlogin <linkedserver_name>, NULL kaldırma genel bir eşleme. |
İzinler
alter any bağlantılı sunucu izni gerektirir.
Örnekler
A.Kullanarak Microsoft SQL Server yerel istemci ole DB sağlayıcısı
Aşağıdaki örnek, adlı bir bağlantılı sunucu oluşturur SEATTLESales.Ürün adı SQL Server, ve hiçbir sağlayıcı adı kullanılır.
USE master;
GO
EXEC sp_addlinkedserver
N'SEATTLESales',
N'SQL Server';
GO
Aşağıdaki örnek oluşturur bağlantılı sunucu S1_instance1 bir örnek üzerinde SQL Server kullanarak SQL Server yerel istemci ole DB sağlayıcı.
EXEC sp_addlinkedserver
@server=N'S1_instance1',
@srvproduct=N'',
@provider=N'SQLNCLI',
@datasrc=N'S1\instance1';
B.Microsoft Access için Microsoft ole DB sağlayıcı kullanarak
Sağlayıcının 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ı bir bağlantılı sunucu oluşturur SEATTLE Mktg.
Not
Bu örnekte her iki varsayar Microsoft erişim ve örnek Northwind veritabanı yüklü ve Northwind veritabanının bulunduğu içinde 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
Microsoft.ACE.OLEDB.12.0 sağlayıcı 2007 biçimini kullanan Microsoft Access veritabanlarına bağlanır.Aşağıdaki örnek, adlı bir bağlantılı sunucu oluşturur SEATTLE Mktg.
Not
Bu örnekte her iki varsayar Microsoft erişim ve örnek Northwind veritabanı yüklü ve Northwind veritabanının bulunduğu içinde 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
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 = N'LONDON Mktg',
@srvproduct = N'Oracle',
@provider = N'MSDAORA',
@datasrc = N'MyServer';
GO
D.Data_source parametresi odbc için Microsoft ole DB sağlayıcı kullanarak
Aşağıdaki örnek, adlı bir bağlantılı sunucu oluşturur SEATTLE Payroll kullanan Microsoft odbc için ole DB sağlayıcısı (MSDASQL) ve data_source parametresi.
Not
bağlantılı sunucukullanmadan önce belirtilen odbc veri kaynak adı sunucu sistem DSN tanımlanmalıdır.
EXEC sp_addlinkedserver
@server = N'SEATTLE Payroll',
@srvproduct = N'',
@provider = N'MSDASQL',
@datasrc = N'LocalServer';
GO
E.Excel elektronik tablosu için Microsoft ole DB sağlayıcı kullanarak
bağlantılı sunucu tanımını kullanarak oluşturmak için Microsoft 1997-2003 biçiminde bir Excel elektronik tablosuna erişmek, ilk olarak adlandırılmış bir aralık belirterek Excel çalışma sayfasının satır ve sütunlardaki Excel oluşturmanız Jet için ole DB sağlayıcısıseçin.aralık adını, sonra bir tablo adı dağıtılmış sorguolarak 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 veri erişim için bir hücre aralık bir adla ilişkilendirebilirsiniz.Aşağıdaki sorgu belirtilen aralıkadlı erişmek için kullanılanSalesData bağlantılı sunucuküme daha önce kullanarak bir tablo olarak.
SELECT *
FROM ExcelSource...SalesData;
GO
SQL Server Çalıştıran uzak paylaşım erişimi olan bir etki alanı hesabı altında bir unc yol bir eşlenen sürücünün. yerine kullanılabilecek
EXEC sp_addlinkedserver 'ExcelShare',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'\\MyServer\MyShare\Spreadsheets\DistExcl.xls',
NULL,
'Excel 5.0';
Excel 2007 biçiminde elektronik tablo için bir Excel bağlanmak için ace sağlayıcıkullanın.
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' ;
F.Bir metin dosyasına erişmek için Jet için Microsoft ole DB sağlayıcı kullanarak
Aşağıdaki örnekte, metin dosyaları, Access .mdb dosyasındaki tabloları olarak dosyaları bağlamadan doğrudan erişmek için bir bağlantılı sunucu oluşturur.sağlayıcı Microsoft.Jet.OLEDB.4.0 ve sağlayıcıdize Text.
Veri kaynak metin dosyalarını içeren dizinin tam yol olan.Metin dosyalarının yapısını tanımlar, bir schema.ini dosyası, metin dosyası ile aynı dizinde bulunması gerekir.Schema.ini dosyasının nasıl oluşturulacağı hakkında daha fazla bilgi için Jet veritabanı altyapısı belgelerine bakın.
--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];
G.Microsoft ole DB Provider for DB2 kullanılarak
Aşağıdaki örnek, adlı bir bağlantılı sunucu oluşturur DB2 kullanan 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;';
Ayrıca bkz.