Dostawca OLE DB programu SQL Server Native Client

The Microsoft SQL Server Native Client OLE DB Provider provides an OLE DB interface to Microsoft SQL Server databases.Za pomocą SQL Server Macierzystego klienta dostawcy OLE DB, SQL Server kwerendami rozproszonymi można zbadać danych w zdalnych wystąpieniach SQL Server.

Aby utworzyć serwer połączony bazy danych programu SQL Server

  • Wykonanie sp_addlinkedserver do tworzenia serwer połączony, określając nazwy sieciowej serwera zdalnego wystąpienie z SQL Server jako data_source.Dla SQL Server połączone serwery, określanie dostawca (SQLNCLI) jest opcjonalny.(Użyj SQLNCLI i SQL Server nastąpi przekierowanie do najnowszej wersja SQL Server macierzystego klienta OLE DB Provider.)

    Na przykład, aby utworzyć serwer połączony o nazwie LinkSQLSrvr , działa przeciwko wystąpienie SQL Server uruchomiony na serwerze, którego nazwa sieci jest NetSQLSrvr, wykonać jednej z następujących:

    sp_addlinkedserver N'LinkSQLSrvr', ' ', N'SQLNCLI', N'NetSQLSrvr'
    sp_addlinkedserver N'LinkSQLSrvr', ' ', ' ', N'NetSQLSrvr'
    

    Alternatywnie można zdefiniować SQL Server serwer połączony jako swojej nazwy, jak pokazano w następującym przykładzie:

    sp_addlinkedserver N'NetSQLSrvr'
    

Gdy kwerendy rozproszone są wykonywane uruchomione wystąpienie serwera SQL Server 2000, zaleca się zastosowanie SQL Server 2000 Service Pack 4 (SP4).Jeśli z dodatkiem SP4 nie zostały zastosowane, należy uruchomić skrypt Instcat.sql, który jest uwzględniona w dodatku SP4 do wykazu przechowywanych procedur uaktualniania.

Gdy kwerendy rozproszone są wykonywane na serwerze z systemem SQL Server w wersja 7.0 lub starszym, procedury przechowywane wykazu w starszej wersja muszą zostać uaktualnione, aby zapewnić poprawne działanie kwerend rozproszonych.Na przykład, jeśli serwer jest uruchomione wystąpienie SQL Server 7.0, procedury przechowywane katalogu na serwerze muszą być uaktualnione do SQL Server 2008 przed można się odwoływać zapytanie rozproszone z serwera, na którym działa wystąpienie SQL Server 2008.

Jeśli zdalny SQL Server Tabela jest aktualizowana, lokalny serwer lub klient nie otrzyma żadnych zestawów wyników lub wiadomości wynikające z wyzwalaczy opalane dla tej aktualizacji.

Gdy używasz nazwy czteroczęściowym zawsze określić nazwę schematu.Nie określając nazwę schematu zapytanie rozproszone uniemożliwia OLE DB z Znajdowanie tabel.Przy odwoływaniu się do lokalnych tabel SQL Server używa ustawień domyślnych, jeśli nie zostanie określona nazwa właściciela.Następujące SELECT Instrukcja wywoła błąd 7314, nawet jeśli logowania serwer połączony mapowane do dbo użytkownika w AdventureWorks2008R2 bazy danych serwer połączony:

sp_addlinkedserver @server = N'LinkServer',
    @srvproduct = N' ',
    @provider = N'SQLNCLI', 
    @datasrc = N'ServerNetName', 
    @catalog = N'AdventureWorks2008R2'
GO
SELECT *
FROM LinkServer.AdventureWorks2008R2.dbo.Vendor

Poniższy przykład definiuje serwer połączony i na zdalnym serwerze czy zarówno dostęp do tego samego komputera, którego nazwa sieci jest othersite.Definicja serwer połączony używa tej samej nazwy jako nazwy sieciowej serwera zdalnego; Definicja serwera zdalnego wykorzystuje inną nazwę.

/* Create a linked server definition to othersite. */
EXEC sp_addlinkedserver 'othersite', N'SQL Server'

/* Create a remote server definition using a
   fictitious name. */
EXEC sp_addserver 'RPCothersite'

/* Set the fictitious name to the network name far away. */
EXEC sp_setnetname 'RPCothersite', 'othersite'

Nazwy te można się odwoływać w kwerendami rozproszonymi lub remote procedure wywołań.

/* A distributed query referencing othersite. */
SELECT *
FROM othersite.Northwind.dbo.Employees
/* A remote procedure call to the same server. */
EXEC RPCothersite.master.dbo.sp_who
/* Distributed queries can be used to execute
   stored procedures on the other server. */
EXEC othersite.master.dbo.sp_who

Istnieją różnice w mechanizm logowania mapowania między wykonywane poprzez serwer połączony i wykonywane poprzez serwerów zdalnych procedur przechowywanych procedur przechowywanych.Aby uzyskać więcej informacji, zobacz Łączenie serwerów.

Uwagi dotyczące transakcji z kwerendami rozproszonymi

The Microsoft SQL Server Native Client OLE DB Provider does not support nested transactions.Dlatego powinny być XACT_ABORT zestaw on dla operacji modyfikujących dane wewnątrz transakcji obejmujących wiele Transact-SQL sprawozdań i dla danych rozproszonych modyfikacji działania przeciwko widoki podzielonym na partycje.