追蹤
lionab資管物語
關於部落格
這是一個資訊管理, ERP, 3C, 旅遊, 勸敗的分享園地
  • 152783

    累積人氣

  • 53

    今日人氣

    0

    追蹤人氣

MS SQL連接遠端伺服器筆記

連接遠端伺服器所使用的 SQL字串如下, 大家應該是大同小異
的使用方式, 請參考微軟MSDN的說明, 很詳細.

--1. =====建立連接伺服器, 將伺服器加入 sys.servers =====
EXEC sp_addlinkedserver
    @server = 'ABC', --被訪問的伺服器别名, 可取任何名字
    @srvproduct = '' ,
    @provider = 'MSDASQL',
    @provstr = 'DRIVER={SQL Server};SERVER=172.16.3.11;UID=user;PWD=1234;Database=eb3'
GO

-- 2. === 建立連接遠端伺服器登入映射
EXEC sp_addlinkedsrvlogin
'ABC',
'false',
NULL,
--遠端伺服器登入帳號
'user',
--遠端伺服器登入密碼
'1234'

GO

-- 3. ======執行 Select =====
SELECT  *
FROM  tblABC
LEFT JOIN tblDEF

-- 4. ==== 移除連接
sp_dropserver 'ABC','droplogins'   --移除連接

GO


錯誤訊息:
訊息 208,層級 16,狀態 1,行 1
無效的物件名稱 'tblABC'。


解決方法:
1. 先確認遠端伺服器是否有連接上, 執行完  1 及 2 的SQL 語句後, 在 SSMS裡,
本地端SQL Server-->伺服器物件-->連結的伺服器-->ABC

可以見到您所連結的伺服器名稱(您所取的別名, 在本例為 ABC)


 

2. 確認tblABC 及  tblDEF 的兩個TABLE裡的欄位有沒有特殊字元
在連結遠端伺服器後, 如果沒有問題, 那問題可能在Table裡的資料, 可以執行簡單的SQL Select 語句, 一個個Table檢查, 它會出現錯誤訊息顯示哪個欄位的資料有問題. 只要把欄位裡的特殊字元(隱藏字元)刪除, Select 就會正常.


 

相簿設定
標籤設定
相簿狀態