我創建從我的本地SQL Server鏈接服務器,如「延遲準備,無法完成」錯誤
http://sqlserverplanet.com/dba/local-linked-server
給然而,當我試圖執行一個存儲在鏈接服務器的程序,它拋出:
Deferred prepare could not be completed
錯誤和無效的對象名稱「表名」
我創建從我的本地SQL Server鏈接服務器,如「延遲準備,無法完成」錯誤
http://sqlserverplanet.com/dba/local-linked-server
給然而,當我試圖執行一個存儲在鏈接服務器的程序,它拋出:
Deferred prepare could not be completed
錯誤和無效的對象名稱「表名」
有你在objec錯過了什麼名字。它應該總是像Database.User.ObjectName(例如Northwind.dbo.Customers)
通過鏈接服務器運行查詢時,請提供完整的對象名稱。執行對鏈接服務器時
查詢存儲過程可能是這樣的:
Select *
From OPENQUERY([COM2\SQLEXPRESS], 'Exec Northwind.dbo.CustOrderHist ''CUST1''') as TB1
檢查與像SET FMTONLY OFF執行存儲過程時的選項。
請點擊此鏈接爲OPENQUERY:http://msdn.microsoft.com/en-us/library/ms188427.aspx
最近在嘗試幫助其他人使用鏈接服務器時遇到了這個問題。希望錯誤消息更具描述性。 – 2013-03-08 04:15:39
我有同樣的錯誤嘗試通過鏈接服務器來查詢。但是,我正在查詢目標服務器上的一個視圖,而不是存儲過程。
目標服務器的創建視圖這樣的:
CREATE VIEW vABC AS
SELECT ... FROM Table1
UNION ALL
SELECT ... FROM Table2
要解決這個問題,我做了一個ALTER視圖,幷包裹在一個子查詢這兩個UNION語句,就像這樣:
CREATE VIEW vABC AS
SELECT * FROM (
SELECT ... FROM Table1
UNION ALL
SELECT ... FROM Table2
) T
必須是原始視圖的一些元數據問題。
希望這可以幫助你!
同樣的問題對我來說:我解決了它只是修復了「目標」對象,沒有正確命名。
在我來說,我正在尋找[testDb].[Business.Customer]
表,但正確的名稱是[testDb].[Business].[Customer]
......同樣的錯誤你:
伊爾提供商OLE DB「SQLNCLI10」每1L服務器collegato 「RIBOWEB10 \ SQLEXPRESS 「ha restituito il messaggio」延遲準備 無法完成。「。
我認爲SQL Server試圖動態解析與真實對象直接不匹配的名稱,但不確定。
很容易的,我希望這有助於:)
即使你已經在你的查詢錯誤命名列,你會看到這個錯誤。例如:
select *
from openquery(
lnksrv
,'select top 10 * from db.schema.table where colunm = 10'
)
和列名是column
,不colunm
。
底線是檢查實際查詢發送到遠程服務器的正確性第一,然後將其包裝在openquery
並重新測試。
我剛剛遇到了這個問題,事實證明,表名在openquery中區分大小寫 – gordy 2015-04-28 19:30:36