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

Проверьте, что Вам передали GRE - это вид порта использования 47. Это - нормальный камень преткновения для VPNs и домашних маршрутизаторов.


Править

(Плохо) подводить итог: перенаправление портов вперед TCP и/или пакеты UDP, которые находятся на уровне 4. GRE отчасти между уровнем 3 и 4 (снова, Википедия имеет объяснения), поэтому, пока это вид порта использования 47 это не типичный TCP или пакет UDP и следовательно не, все маршрутизаторы передадут его.

Это - то, что необходимо проверить - много маршрутизаторов конкретно имеют функцию это конкретно вперед GRE.

Возможно, кто-то еще мог поместить его немного более красноречиво, чем я!

2
задан 26 May 2011 в 17:21
2 ответа

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

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

... но это не существует на версии на 32 бита. Можно создать обертку с тем именем SP, которое называет sp_tables_info_rowset версию на 32 бита.

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

2
ответ дан 3 December 2019 в 11:04

Следующий сценарий - тот, который я использовал для создания необходимой хранимой процедуры 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
1
ответ дан 3 December 2019 в 11:04

Теги

Похожие вопросы