我有3個SQL服務器,我得到奇怪的行爲與OpenRowset。推遲準備不能完成,3 SQL服務器
鑑於:
- 服務器1 = 192.168.1.1,
- 服務器2 = 192.168.1.2,
- 服務器3 = 192.168.1.3,
- 服務器4 = 192.168.1.4
SQL:
SELECT a.*
FROM OPENROWSET('SQLOLEDB',
'Data Source=192.168.1.1;Persist Security
Info=True;uid=sa;pwd=password',
'SELECT * FROM dfs_database.dbo.dfs_vehicledata ') AS a;
下面是一個奇怪的部分:如果我在服務器.3和.4上運行上述SQL語句,一切正常。
但是,如果我在服務器0.2運行SQL語句,我得到:
OLE DB提供程序「SQLNCLI11」鏈接服務器延遲準備「(空)」返回了消息」無法完成。 」。
Msg 8180,Level 16,State 1,Line 7
聲明無法準備。消息208,級別16,狀態1,行7
無效的對象名稱'dfs_database.dbo.dfs_vehicledata'。
那麼當其他人工作正常時,什麼可能使一個關係不起作用?有任何想法嗎?它們都是SQL Server高速緩存,並且所有報告都有SQLNCLI11提供程序。
你的錯誤信息說'無效的對象名稱dfs_database.dbo.dfs_vehicledata''。你確定你打的是正確的數據庫嗎?表名也可以通過開放式查詢區分大小寫。 – LordBaconPants
您可以在本地運行該服務器上的相同查詢嗎? – Anton
嘗試設置映射到該服務器的鏈接服務器,並檢查是否可以訪問那裏的任何對象。 – Anton