Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I execute a simple query on the linked server that uses a User that is mapped across the two servers this errors. I tried Test Link Server connection which works ok.

What is confusing is that something I stumbled across on the WEB was to try using OPENQUERY which did work.

the following errors returned when I executed my query not using the OPENQUERY method.

OLE DB provider "SQLNCLI10" for linked server "" returned message "Unspecified error".

OLE DB provider "SQLNCLI10" for linked server "" 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 2 Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "". The provider supports the interface, but returns a failure code when it is used.

Many thanks

share|improve this question
up vote 2 down vote accepted

It's trying to run the following stored procedure:

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

...but it does not exist on the 32 bit version. You can create a wrapper with that sp name which calls the sp_tables_info_rowset 32 bit version.

I believe this is fixed in a service pack on 2000 and 2005 so apply that if possible.

share|improve this answer

The following script is the one I used to create the needed stored procedure sp_tables_info_rowset_64 that's a wrapper around sp_tables_info_rowset and it fixed the same error for me. Run it on the SQL Server 2000 box.

use master

create procedure sp_tables_info_rowset_64

@table_name sysname,

@table_schema     sysname = null,

@table_type nvarchar(255) = null


declare @Result int set @Result = 0

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


grant exec on sp_tables_info_rowset_64 to public
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.