![](/img/trans.png)
[英]OLE DB provider for linked server reported a change in schema version Error
[英]Using linked server returns error - “Cannot obtain the schema rowset for OLE DB provider”
如上一個問題所述,我試圖將ETL數據從一台sql服務器移動到另一台sql服務器- 將數據從一列復制到另一列 。 現在,當我嘗試執行查詢時出現錯誤。
查詢-
INSERT INTO [Target_server].[Target_DB1].[dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'
錯誤-
OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER" returned message "Unspecified error".
OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER" returned message "The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.".
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked server "MYLINKEDSERVER". The provider supports the interface, but returns a failure code when it is used.
如果您寫的簡單選擇不起作用,則問題出在鏈接服務器的安全配置和用戶在此處獲得的權限。
其中,執行查詢時,無需為源和目標這兩個部分都指定服務器名稱和數據庫名稱。 您只需要在目標服務器和目標數據庫上執行查詢。 在這種情況下,您的查詢而不是
INSERT INTO [Target_server].[Target_DB1].[dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'
將如下所示:
INSERT INTO [dbo].[Target_Table1](Target_Column1)
SELECT Source_Column222
FROM [Source_server].[Source_DB1].[dbo].[Source_Table1]
WHERE Source_Column1 = 'ID7162'
並且您需要在服務器[Target_server]
和數據庫[Target_DB1]
上打開連接。 另外,鏈接服務器的安全性需要對被檢查[Target_server]
反對[Source_server]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.