SQL Server Native Client OLE DB Provider
The Microsoft SQL Server Native Client OLE DB Provider provides an OLE DB interface to Microsoft SQL Server databases.Za pomocą SQL Server Macierzysta klient dostawca OLE DB, SQL Server kwerendami rozproszonymi można zbadać danych w zdalnych wystąpieniach SQL Server.
Aby utworzyć serwer połączony, aby uzyskać dostęp do bazy danych programu SQL Server
wykonać sp_addlinkedserver do tworzenia serwer połączony, określając nazwy sieciowej serwera z systemem zdalnym wystąpienie SQL Server jako data_source. Dla SQL Server połączone serwery, określanie dostawca (SQLNCLI) jest opcjonalny. (Użyj SQLNCLI i SQL Server będzie przekierować do najnowszej wersja programu SQL Server Macierzysta klient dostawca OLE DB.)
Na przykład, aby utworzyć serwer połączony o nazwie LinkSQLSrvr które działa przed wystąpienie SQL Server jest uruchomiona na serwerze, którego nazwa sieci NetSQLSrvr, wykonaj jedną z następujących czynności:
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 sieci, jak pokazano w poniższym przykładzie:
sp_addlinkedserver N'NetSQLSrvr'
Gdy kwerendy rozproszone są wykonywane na serwerze, na którym jest uruchomione wystąpienie programu SQL Server 2000, firma Microsoft zaleca zastosowanie SQL Server 2000 Dodatek usługa Pack 4 (SP4). Jeśli nie zastosowano dodatku SP4, należy uruchomić skrypt Instcat.sql, który jest dostarczany z dodatkiem SP4 uaktualnić procedury przechowywane wykazu.
Kiedy kwerendami rozproszonymi są wykonywane na serwerze z systemem SQL Server w wersja 7.0 lub starszym, procedury przechowywane katalogu w starszej wersja muszą zostać uaktualnione, aby zapewnić poprawne działanie z kwerendami rozproszonymi. Na przykład, jeśli serwer jest uruchomione wystąpienie SQL Server 7.0, procedury przechowywane katalogu na serwerze musi zostać uaktualniony do SQL Server 2008 zanim można się odwoływać w kwerenda rozproszona 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 zestawów wyników ani wiadomości powstałe w wyniku wyzwalacze uruchamiany dla tej aktualizacji.
Korzystając z nazwy four-part, należy zawsze określić nazwę schematu.Nie określając nazwy schematu w kwerenda rozproszona uniemożliwia Znajdowanie tabel baz danych OLE.Przy odwoływaniu się do lokalnego tabel SQL Server używa ustawień domyślnych, jeżeli nie określono z nazwą właściciela. Poniżej SELECT Instrukcja może wygenerować błąd 7314, nawet wtedy, gdy logowania serwer połączony mapowane do dbo użytkownik w AdventureWorks Baza danych serwer połączony:
sp_addlinkedserver @server = N'LinkServer',
@srvproduct = N' ',
@provider = N'SQLNCLI',
@datasrc = N'ServerNetName',
@catalog = N'AdventureWorks'
GO
SELECT *
FROM LinkServer.AdventureWorks.dbo.Vendor
W poniższym przykładzie określa serwer połączony i serwerem zdalnym, czy zarówno dostęp do tego samego komputera, którego nazwa sieciowa jest othersite. Definicja połączonego serwera używa tej samej nazwy jako nazwy sieciowej serwera zdalnego, definicji serwer zdalny używa 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łania.
/* 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 procedur przechowywanych, które są wykonywane za pośrednictwem serwer połączony i procedur przechowywanych, które są wykonywane przez serwery zdalne.Aby uzyskać więcej informacji zobaczLinking Servers.
Uwagi dotyczące transakcji z usługi kwerendy
The Microsoft SQL Server Native Client OLE DB Provider does not support nested transactions.Dlatego XACT_ABORT powinna być ustawiona na ON danych operacji modyfikacji wewnątrz transakcji obejmujących wiele Transact-SQL instrukcje i operacje modyfikacji danych rozproszonych widoki podzielonym na partycje.