Использование связанного сервера возвращает ошибку – «Не удается получить набор строк схемы для поставщика OLE DB»

Я попытался переместить данные aka ETL с одного сервера 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] .

Если вы используете связанный с обратной связью сервер (связанный сервер, ссылающийся на одну и ту же базу данных на том же сервере), обратитесь к приведенной ниже ссылке:

Транзакция с привязкой к серверу с обратной связью

Если это не так, это решение Microsoft.