Sql-Server
連結伺服器錯誤 - 從 SQL2008r2 到 SQL2014
當我嘗試使用連結伺服器查詢表時出現以下錯誤。在 SQL2008r2 實例上創建連結伺服器以連接到 SQL2014 實例。
連結伺服器 “server\SQL2014” 的 OLE DB 提供程序 “SQLNCLI10” 不包含表 ““db_name”.“dbo”.“table_name”"。該表不存在或目前使用者對該表沒有權限。
這是我用來創建連結伺服器的 TSQL
EXECUTE sp_addlinkedserver @server = N'server\SQL2014', @srvproduct=N'sql_server', @provider=N'SQLNCLI10' EXECUTE sp_addlinkedsrvlogin @rmtsrvname='server\SQL2014', @useself='false',@rmtuser='sa', @rmtpassword='sa_password'
當我測試成功的連接時
連結伺服器登錄名是sa,因此權限不會成為問題。
sa 使用者已啟用並且表存在我可以使用 sa 使用者直接在 SQL2014 實例上連接並查詢所有表。
我哪裡錯了?
請嘗試在創建連結伺服器時指定**@datasrc參數,例如**
EXECUTE sp_addlinkedserver @server = N'server\SQL2014', @srvproduct=N'sql_server', @provider=N'SQLNCLI10', @datasrc = N'server\SQL2014'
混淆可能在於**@server**參數是要在您的程式碼中使用的連結伺服器的描述性名稱。 @datasrc實際上是 OLEDB 用來建立連接的物理伺服器名稱。
如果您檢查連接並使用 SA,您似乎沒有使用正確的語法 (Linkserver.Database.Schema.TableName) 或像表名這樣的語法部分不存在或表名不匹配……