sp_addlinkedserver (Transact-sql)

Bağlantılı sunucu oluşturur. Bağlantılı sunucu dağıtılmış, türdeş olmayan sorgular ole db veri kaynaklarına erişim sağlar. Bağlantılı bir sunucu kullanarak oluşturulduktan sonra sp_addlinkedserver, dağıtılmış sorgular bu sunucuda çalıştırılabilir. Bağlantılı sunucu örneği tanımlanır, SQL Server, uzak saklı yordamlar idam.

Konu bağlantısı simgesi Transact-SQL Sözdizim 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'
    Bağlantılı sunucu oluşturmak için adıdır. serverise sysname, hiçbir varsayılan ile.

  • @srvproduct='product_name'
    Bağlantılı sunucu olarak eklemek için ole db veri kaynağı ürün adıdır. product_nameise nvarchar(128), null varsayılan. Eğer SQL Server, provider_name, data_source, location, provider_string, ve catalogbelirtilmesi gerekmez.

  • @provider='provider_name'
    Bu veri kaynağına karşılık gelen ole db sağlayıcısı benzersiz programlama kimliğini (ProgID) olduğunu. provider_nameGeçerli bilgisayarda yüklü belirtilen ole db sağlayıcısı için benzersiz olmalıdır. provider_nameise nvarchar(128), varsayılan NULL; Ancak, eğer provider_nameise ihmal, SQLNCLI kullanılan. (Kullanma SQLNCLI ve SQL Serveren son sürümüne yönlendirir SQL Serveryerel istemci ole db sağlayıcısını.) ole db sağlayıcısı belirtilen program kimliği kayıt defterinde kayıtlı olmasını bekleniyor.

  • @datasrc='data_source'
    Veri kaynağı adı ole db sağlayıcı tarafından yorumlanan gibidir. data_sourceis nvarchar(4000). data_sourceole db sağlayıcısı başlatılamadı DBPROP_INIT_DATASOURCE özelliği olarak geçirilir.

  • @location='location'
    ole db sağlayıcı tarafından yorumlanan veritabanının konumu aynıdır. locationise nvarchar(4000), null varsayılan. locationole db sağlayıcısını başlatmak için DBPROP_INIT_LOCATION özelliği olarak geçirilir.

  • @provstr='provider_string'
    Benzersiz veri kaynağını tanımlayan ole db sağlayıcıya özgü bağlantı dizesi olan. provider_stringise nvarchar(4000), null varsayılan. provstrya da geçer IDataInitializeya da ole db sağlayıcısı başlatılamadı DBPROP_INIT_PROVIDERSTRING özelliği olarak ayarla.

    Karşı bağlantılı sunucu oluşturulduğunda SQL Serveryerel istemci ole db sağlayıcısı, örnek sunucu sunucu anahtar sözcüğünü kullanarak belirtilebilir =servername\ instancename belirli bir örneği belirtmek için SQL Server. servernamebilgisayarın adı SQL Serverçalışıyor, ve instancenameait örneği adını SQL Serverhangi kullanıcının bağlanması için.

    [!NOT]

    Yansıtılmış bir veritabanına erişmek için bir bağlantı dizesi, veritabanı adı içermelidir. Bu ad, veri erişim sağlayıcısı tarafından yük devretme girişimleri etkinleştirmek gereklidir. Veritabanı belirtilebilir @ @datasrc=N'C:\DataFolder\People.xlsx',@provstr='EXCEL veya @ Katalog parametresi. İsteğe bağlı olarak, bağlantı dizesi, bir yerine çalışma ortağı adı da sağlayabilir.

  • @catalog='catalog'
    ole db sağlayıcısı için bağlantı yapılırken kullanılacak kataloğudur. catalogise sysname, null varsayılan. catalogole db sağlayıcısı başlatılamadı DBPROP_INIT_CATALOG özellik olarak geçirilir. Bağlantılı sunucu karşı örneği tanımlanan zaman SQL Server, katalog gösterir varsayılan veritabanına bağlantılı sunucu eşleştirilir.

Dönüş Kodu Değerleri

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

Sonuç Kümeleri

Yok.

Açıklamalar

Aşağıdaki tabloda, bağlantılı sunucu ole db erişilebilir veri kaynakları için ayarlanabilir yollarını gösterir. Bağlantılı bir sunucu, belirli veri kaynağı için birden fazla yol yukarı ayarlanabilir; veri kaynağı türü için birden fazla satır olabilir. Bu tabloda ayrıca gösterilir sp_addlinkedserver parametre değerleri bağlantılı sunucuyu ayarlamak için kullanılacak.

Uzak ole db veri kaynağı

ole db sağlayıcısı

Ü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ı SQL Server(varsayılan örneği için)

 

 

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

SQL Server

Microsoft SQL ServerYerel istemci ole db sağlayıcısı

 

SQLNCLI

servername\ instancename (belirli örneği için)

 

 

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

Oracle, sürüm 8 ve sonrası

ole db iç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

Microsoft.Jet.OLEDB.4.0

Jet veritabanı dosyasının tam yolu

 

 

 

odbc veri kaynağı

odbc için Microsoft ole db sağlayıcısı

Herhangi biri

MSDASQL

Sistem dsn, odbc veri kaynağı

 

 

 

odbc veri kaynağı

Microsoftole db Provider for odbc

Herhangi biri

MSDASQL

 

 

Bağlantı dizesi

 

Dosya sistemi

Microsoftole db sağlayıcısı için dizin oluşturma hizmeti

Herhangi biri

MSIDXS

Dizin oluşturma hizmeti katalog adı

 

 

 

MicrosoftExcel elektronik tablosu

Microsoftole db Sağlayıcı Jet

Herhangi biri

Microsoft.Jet.OLEDB.4.0

Excel dosyasının tam yolu

 

Excel 5.0

 

IBM DB2 veritabanı

Microsoftole db Provider for odbc

Herhangi biri

DB2OLEDB

 

 

Bkz: Microsoftole db Provider for DB2 belgelerine.

DB2 veritabanının katalog adı

1 Bu şekilde ayarlamanın bir bağlantılı sunucu uzaktan örneği ağ adı ile aynı bağlantılı sunucu adı kuvvetleri SQL Server. Kullanım data_sourcesunucu belirtmek için.

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

Microsoft  SQL ServerYerel istemci ole db sağlayıcısı ile kullanılan sağlayıcısıdır SQL Serverhiçbir sağlayıcı adı belirtilirse, ya da eğer SQL ServerÜrün belirtildiğinden. Bile eski sağlayıcı adı, sqloledb, belirttiğiniz zaman katalog için kalıcı SQLNCLI şekilde değiştirilecektir.

data_source, location, provider_string, Ve catalogişaret eden bağlantılı sunucu için veritabanı veya veritabanı parametrelerini tanımlamak. Bu parametrelerden biri null ise, karşılık gelen ole db başlatma özelliği ayarlanmamış.

Dosya adları için ole db veri kaynakları işaret belirttiğinizde, kümelenmiş bir ortamda konumu belirtmek için evrensel adlandırma kuralı adına (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.

Güvenlik notuGüvenlik Notu

Bağlantılı sunucu oluşturulduğunda kullanarak sp_addlinkedserver, bir varsayılan self-mapping için tüm yerel oturumu eklendi. İçin non- SQL Server sağlayıcıları, SQL ServerDoğrulanan oturumların altında sağlayıcısı erişmek mümkün olabilir SQL Serverhizmet hesabı. Yöneticiler, kullanarak düşünmelisiniz sp_droplinkedsrvlogin <linkedserver_name>, NULLküresel eşlemesini kaldırmak için.

İzinler

alter any bağlantılı sunucu izni gerektirir.

Örnekler

A.Microsoft SQL Server yerel istemci ole db sağlayıcı kullanarak

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

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

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

Aşağıdaki örnek, bir bağlı sunucu oluşturur S1_instance1örneğinde SQL Serverkullanarak SQL Serveryerel istemci ole db sağlayıcısını.

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

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

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ğlı sunucu oluşturur SEATTLE Mktg.

[!NOT]

Bu örnek hem varsayar Microsofterişim ve örnek Northwind veritabanı yüklü ve Northwind veritabanı, C:\Msoffice\Access\Samples içinde bulunur.

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

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

Provider Sağlayıcı 2007 biçimini kullanan Microsoft Access veritabanına bağlar. Aşağıdaki örnek, adlı bir bağlı sunucu oluşturur SEATTLE Mktg.

[!NOT]

Bu örnek hem varsayar Microsofterişim ve örnek Northwind veritabanı yüklü ve Northwind veritabanı, C:\Msoffice\Access\Samples içinde bulunur.

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

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.Data_source parametresi odbc için Microsoft ole db sağlayıcı kullanarak

Aşağıdaki örnek, adlı bir bağlı sunucu oluşturur SEATTLE Payrollkullanan Microsoftodbc için ole db sağlayıcısı (MSDASQL) ve data_sourceparametresi.

[!NOT]

Bağlantılı sunucu kullanmadan önce belirtilen odbc veri kaynağı adı, sunucu Sistem dsn tanımlanmalıdır.

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

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

D.Excel elektronik tablo için Microsoft ole db sağlayıcı kullanarak

Bir bağlantılı sunucu tanımı kullanarak oluşturmak için Microsoft1997-2003 biçiminde, bir Excel elektronik tablo erişmek Jet için ole db sağlayıcısı oluşturmalı adlandırılmış bir aralığı Excel'de sütunları ve satırları seçmek için Excel çalışma sayfasının belirterek. Aralık adı, ardından bir dağıtılmış sorgu bir 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

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ığı bir adla ilişkilendirebilirsiniz. Aşağıdaki sorgu belirtilen adlandırılmış aralığa erişmek için kullanılacak SalesDataönceden ayarlanmış bağlantılı sunucu kullanarak tablo.

SELECT *
   FROM ExcelSource...SalesData;
GO

SELECT *
   FROM ExcelSource...SalesData;
GO

Eğer SQL Serverçalıştıran uzaktaki bir paylaşıma erişimi olan bir etki alanı hesabı altında bir unc yolu 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';

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

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

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

Metin dosyalarının bulunduğu dizinin tam yolu veri kaynağıdır. Metin dosyalarının yapısını tanımlayan, schema.ini dosyası, metin dosyası ile aynı dizinde bulunması gerekir. 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, 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];

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

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

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.

Başvuru

Dağıtılmış sorgular saklı yordamları (Transact-sql)

sp_addlinkedsrvlogin (Transact-sql)

sp_addserver (Transact-sql)

sp_dropserver (Transact-sql)

sp_serveroption (Transact-sql)

sp_setnetname (Transact-sql)

Sistem saklı yordamları (Transact-sql)

Sistem tabloları (Transact-sql)