程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MS SQL server分布式查詢(鏈接數據庫)

MS SQL server分布式查詢(鏈接數據庫)

編輯:關於SqlServer

如果一個項目需要二至多台服務器,而我們又必須從幾台服務器中將數據取出來,這就必須用分布式查詢!

在這裡有兩個概念:本地數據源、遠程數據源!

本地數據源指的是單個服務器上的數據

而遠程數據源指的是另一個SQL實例上的數據。如何跨服務器取數呢?

有二種建議: 

--如果經常訪問或數據量大,建議用鏈接服務器

--創建鏈接服務器
exec sp_addlinkedserver  ''srv_lnk'','''',''SQLOLEDB'',''遠程服務器名或ip地址''
exec sp_addlinkedsrvlogin ''srv_lnk'',''false'',null,''用戶名'',''密碼''
go

--查詢示例
select * from srv_lnk.數據庫名.dbo.表名

--導入示例
select * into 表 from srv_lnk.數據庫名.dbo.表名

go
--以後不再使用時刪除鏈接服務器
exec sp_dropserver ''srv_lnk'',''droplogins''


--如果只是臨時訪問,可以直接用openrowset
--查詢示例
select * from openrowset(''SQLOLEDB''
 ,''sql服務器名'';''用戶名'';''密碼''
 ,數據庫名.dbo.表名)

--導入示例
select * into 表 from openrowset(''SQLOLEDB''
 ,''sql服務器名'';''用戶名'';''密碼''
 ,數據庫名.dbo.表名)

如何在企業管理器中設置呢?

SQL實例--->安全性--->鏈接服務器--->右鍵新建鏈接服務器

常規中輸入鏈接服務器的名字,選其它數據源,選SQLOLEDB,數據源寫上,一般寫IP地址

再選安全性-----》選本地登陸----》模擬打勾

用此安全上下文進行,輸入用戶與密碼

常見問題:

1.在建立完鏈接服務器後,我們進行查詢操作
  例:我們已對DFLD的服務器做了鏈接,緊接著我們想訪問它中PUBS數據庫中的Authors表
  Select * From DFLD.PUBS..Authors
  經常會出二類問題
    1.提示
   異類查詢要求為連接設置 ANSI_NULLS 和 ANSI_WARNINGS 選項。這將確保一致的查詢語義。請啟用這   些選項,然後重新發出查詢。
      這種提示是因為沒有將ANSI_NULLS與ANSI_WARNINGS打開
      SET ANSI_NULLS  ON
      SET ANSI_WARNINGS  ON
      Select * From DFLD.PUBS..Authors--這樣就可以了!
    2.提示
    某機器MSDTC服務不可用
      這種提示很簡單,只需要將MSDTC服務打開就是了!注:需要雙方均打開MSDTC服務,默認不打開

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved