Aracılığıyla paylaş


SQL Server Native Client OLE DB Sağlayıcısı

The Microsoft SQL Server Native Client OLE DB Provider provides an OLE DB interface to Microsoft SQL Server databases.Kullanarak SQL Server Yerel istemci OLE DB sağlayıcı SQL Server dağıtılmış sorgular verileri uzak örneklerini sorgulayabilirsiniz SQL Server.

Bir SQL Server veritabanına bağlantılı sunucu oluşturmak için

  • yürütmek sp_addlinkedserver uzaktan çalıştıran sunucunun ağ adı bağlantılı sunucu oluşturmak için örnek SQL Server olarak data_source. Için SQL Server bağlantılı sunucular, sağlayıcı (SQLNCLI) belirten isteğe bağlıdır. (SQLNCLI kullanın ve SQL Server en son sürüm yönlendirir SQL Server Yerel istemci OLE DB sağlayıcı.)

    Örneğin, adlı bağlantılı sunucu oluşturmak için LinkSQLSrvr karşı örnek çalışır SQL Server Ağ adı sunucu üzerinde çalışan olur. NetSQLSrvr, aşağıdakilerden birini çalıştırın:

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

    Alternatif olarak, tanımlayabilirsiniz bir SQL Server bağlantılı sunucu olarak, aşağıdaki örnekte gösterildiği gibi ağ adı:

    sp_addlinkedserver N'NetSQLSrvr'
    

Dağıtılmış sorgular örneğini çalıştıran bir sunucuda zaman çalıştırılır SQL Server 2000, uyguladığınız önerilir SQL Server 2000 hizmet Pack 4 (SP4). SP4 uygulanmışsa, katalog saklı yordamlar yükseltmek için SP4 ile birlikte ınstcat.sql'yi komut dosyasını yeniden çalıştırmalısınız.

Dağıtılmış sorgular çalıştıran bir sunucuda zaman çalıştırılır SQL Server dağıtılmış sorgular düzgün çalışmasını sağlamak için sürüm 7.0 veya önceki bir sürümü, önceki sürümünde katalog saklı yordamlar yükseltilmesi gerekir. Örneğin, bir sunucu örnek çalışıyorsa SQL Server 7. 0 ', sunucu üzerindeki Kataloğu depolanan yordamlar için yükseltilmesi gerekir SQL Server 2008 ' de başvurulabilir önce bir dağıtılmış sorgu bir sunucudan bir örneğini çalıştıran SQL Server 2008.

Uzak zaman SQL Server Tablo güncelleştirildi, yerel sunucu veya istemci herhangi bir sonuç kümesi veya için bu güncelleştirmeyi harekete Tetikleyicileri kaynaklanan iletileri almayacaksınız.

Four-part adları'nı kullandığınızda, her zaman şema adı belirtin.Dağıtılmış sorguda bir şema adı belirterek, OLE DB tabloları bulmasını engeller.Yerel tablolar başvururken SQL Server bir sahip adı belirtilmezse, varsayılan değerleri kullanır. Aşağıdaki SELECT bağlantılı sunucu oturum açma eşlenmiş bile 7314 hata için deyim oluşturmak bir dbo Kullanıcı AdventureWorks bağlı sunucuda veritabanı:

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

Aşağıdaki örnek, bağlantılı sunucu ve uzaktaki bir sunucuyu tanımlar her ikisi de aynı bilgisayarı ağ adı olan erişim othersite. Bağlantılı sunucu tanım uzak sunucunun ağ adıyla aynı adı kullanır; başka bir ad uzak sunucu tanım kullanır.

/* 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'

Bu adları başvurulabilir, dağıtılmış sorgular veya uzak yordam çağrıları.

/* 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

Oturum açma eşleme mekanizması'saklı yordamlar bağlantılı sunucu ve saklı yordamlar uzak sunucular arasında yürütülen yürütülen arasındaki farklılıklar vardır.Daha fazla bilgi için bkz:Bağlama sunucuları.

Hareket konuları ile dağıtılmış sorgular

The Microsoft SQL Server Native Client OLE DB Provider does not support nested transactions.Bu nedenle, XACT_ABORT olmalıdır küme birden çok kişiyle ilgili bir hareket içinde veri değiştirme işlemleri için açık Transact-SQL ifadeler ve dağıtılmış, bölümlenmiş görünümler veri değiştirme işlemleri.