Назад | Перейти на главную страницу

Ошибка при выполнении запроса на связанном сервере в SQL 2008, который подключается к базе данных SQL 2000

Я выполняю простой запрос на связанном сервере, который использует пользователя, сопоставленного с двумя серверами с этой ошибкой. Я попробовал подключение к серверу Test Link, которое работает нормально.

Что сбивает с толку, так это то, что я наткнулся на WEB, как попытаться использовать OPENQUERY, который действительно работал.

следующие ошибки вернулись, когда я выполнил свой запрос без использования метода OPENQUERY.

Поставщик OLE DB «SQLNCLI10» для связанного сервера «xxx.xxx.x.x» вернул сообщение «Неизвестная ошибка».

Поставщик OLE DB «SQLNCLI10» для связанного сервера «xxx.xxx.x.x» вернул сообщение «Хранимая процедура, необходимая для выполнения этой операции, не найдена на сервере. Обратитесь к системному администратору.».

Msg 7311, уровень 16, состояние 2, строка 2 Не удается получить набор строк схемы «DBSCHEMA_TABLES_INFO» для поставщика OLE DB «SQLNCLI10» для связанного сервера «192.168.9.5». Провайдер поддерживает интерфейс, но при его использовании возвращает код ошибки.

Большое спасибо

Он пытается запустить следующую хранимую процедуру:

exec [mybase]..sp_tables_info_rowset_64 N'mytable', N'dbo', NULL

... но его нет в 32-битной версии. Вы можете создать оболочку с этим именем sp, которая вызывает 32-разрядную версию sp_tables_info_rowset.

Я считаю, что это исправлено в сервисном пакете 2000 и 2005 годов, поэтому примените это, если возможно.

Следующий сценарий - это тот, который я использовал для создания необходимой хранимой процедуры sp_tables_info_rowset_64, которая является оболочкой для sp_tables_info_rowset и исправила ту же ошибку для меня. Запустите его в окне SQL Server 2000.

use master
go

create procedure sp_tables_info_rowset_64

@table_name sysname,

@table_schema     sysname = null,

@table_type nvarchar(255) = null

as

declare @Result int set @Result = 0

exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type

go

grant exec on sp_tables_info_rowset_64 to public