DEVELOPMENT: Cannot obtain the schema rowset “DBSCHEMA_TABLES_INFO” for OLE DB provider “SQLNCLI” for linked server

Running a query from SQL Server 2008 over a linked server connection to a SQL Server 2000 server causes the following error:

OLE DB provider “SQLNCLI10″ for linked server “mylinkedserver” returned message “Unspecified error”.
OLE DB provider “SQLNCLI10″ for linked server “mylinkedserver” returned message “The stored procedure required to complete this operation could notbe found on the server. Please contact your system administrator.”.
Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowsetDBSCHEMA_TABLES_INFO” for OLE DB provider interface, but returns a failure code when it is used.

Or

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 rowsetDBSCHEMA_TABLES_INFO” for OLE DB provider “SQLNCLI” for linked server “”. The provider supports the interface, but returns a failure code when it is used.

Firstly, SQL Server 2000 SP4 (service pack 4) must be installed.

Then the system stored procedures must be manually upgraded.

Note that when manually upgrading the system stored procedures, we used SQL Server Authentication mode which requires the syntax:
osql -U [adminlogin]-P [adminpassword]-S [linkedservername]-i [location]instcat.sql

We first entered the line as:
osql -U sa -P myPassword -S myServer -i C:Program FilesMicrosoft SQL ServerMSSQLInstallinstcat.sql

But this just bought up the osql help /? list of parameters. To avoid this, make sure that the -i path is in speech marks!
osql -U sa -P myPassword -S myServer -i “C:Program FilesMicrosoft SQL ServerMSSQLInstallinstcat.sql

Note that the manual upgrade takes a couple of minutes to run and there are a whole bunch of message and numbers displayed in the command window as it executes. If the process is successful, then the last but one line will read “instcat.sql completed successfully”.

In our experience, the SQL Service did not need to be restarted, the fix worked immediately and we were able to query the SQL Server 2000 server from SQL Server 2008 over the link immediately:
SELECT COUNT(*)
FROM myLinkedServer.myDatabase.dbo.myTable

We hope that this tip helps others new to SQL Server 2008 development!

Please see our website for more information on our software development services.

Related Stories

See all

Case Study: Revolutionizing Service Contract Quotations with Contract Calculator Integration

Feb 05, 2025

Discover how Tescan transformed their sales process with a cutting-edge Contract Calculator, seamlessly integrating SugarCRM and QuoteWerks to deliver faster, more accurate customer quotations.   Project Goals Tescan aimed to:   Key Actions   Overcoming Challenges   Results   Customer Testimonial “The new Contract Calculator has transformed our Service Sales process. We can now generate […]

READ MORE

Hilltops IT Launches ConnectIt-SageOne Integration for QuoteWerks and Sage One Business Cloud

Feb 05, 2025

Hilltops IT Consultancy Services Ltd is excited to announce the launch of ConnectIt-SageOne, a powerful integration solution designed to seamlessly connect QuoteWerks with Sage One Business Cloud. This innovative product aims to enhance business efficiency, accuracy, and productivity by automating data transfer and synchronization between the two platforms. Read the full press release here! Get […]

READ MORE

Embracing Technologies: Our Adoption of Xojo

Oct 08, 2024

Introduction In the fast-paced world of software development, businesses must remain agile and adaptable. This case study explores how we successfully transitioned the maintenance and enhancement of a custom software application written in Xojo in-house following the retirement of the original developer. The Challenge When the original developer of a critical custom software application retired, […]

READ MORE