SQL 2000 linked server error from x64 machine(Cannot obtain the schema rowset “DBSCHEMA_TABLES_INFO”)

Msg 7311, Level 16, State 2, Line 1 Cannot obtain the schema rowset “DBSCHEMA_TABLES_INFO” for OLE DB provider “SQLNCLI” for linked server “”. The provider supports the interface, but returns a failure code when it is used.

You may receive an error message when you try to run distributed queries from a 64-bit SQL Server client to a linked 32-bit SQL Server

http://support.microsoft.com/kb/906954

Another method,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
http://sqlblog.com/blogs/roman_rehak/archive/2009/05/10/issue-with-64-bit-sql-server-using-sql-2000-linked-server.aspx

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 execute on sp_tables_info_rowset_64 to public