When I did a setup of a linked server to an old SQL 2000 32 bit server I got this error when trying to do a select on a table in the linked server. There was no problem to setup the linked server.
OLE DB provider "SQLNCLI10" for linked server "BTC_SERVER" returned message "Unspecified error".
OLE DB provider "SQLNCLI10" for linked server "BTC_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 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "BTC_SERVER". The provider supports the interface, but returns a failure code when it is used.
For any reason SQL try to use stored procedure that is missing. If I add this sp everything works fine for me.
create procedure [dbo].[sp_tables_info_rowset_64]
@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