Erro ao executar uma consulta em um servidor vinculado no SQL 2008 que se conecta a um banco de dados do SQL 2000

2

Eu executo uma consulta simples no servidor vinculado que usa um usuário que é mapeado através dos dois servidores esses erros. Eu tentei conexão Test Link Server, que funciona bem.

O que é confuso é que algo que eu encontrei na WEB foi tentar usar o OPENQUERY que funcionou.

os seguintes erros retornados quando eu executei minha consulta não usando o método OPENQUERY.

O provedor OLE DB "SQLNCLI10" para o servidor vinculado "xxx.xxx.x.x" retornou a mensagem "Erro não especificado".

O provedor OLE DB "SQLNCLI10" para o servidor vinculado "xxx.xxx.x.x" retornou a mensagem "O procedimento armazenado necessário para concluir esta operação não pôde ser encontrado no servidor. Entre em contato com o administrador do sistema.".

Msg 7311, nível 16, estado 2, linha 2 Não é possível obter o conjunto de linhas do esquema "DBSCHEMA_TABLES_INFO" para o provedor OLE DB "SQLNCLI10" para o servidor vinculado "192.168.9.5". O provedor suporta a interface, mas retorna um código de falha quando é usado.

Muito obrigado

    
por Paul Myers 26.05.2011 / 16:21

2 respostas

2

Ele está tentando executar o seguinte procedimento armazenado:

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

... mas não existe na versão de 32 bits. Você pode criar um wrapper com esse nome sp que chama a versão de 32 bits sp_tables_info_rowset.

Acredito que isso seja corrigido em um service pack em 2000 e 2005, portanto, aplique isso, se possível.

    
por 26.05.2011 / 17:01
1

O script a seguir é o que usei para criar o procedimento armazenado necessário sp_tables_info_rowset_64 que é um wrapper em torno de sp_tables_info_rowset e corrigiu o mesmo erro para mim. Execute-o na caixa do 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
    
por 30.08.2011 / 19:32