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.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

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 notuGü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;';