Solved

Linked Server / Inconsistent Metadata

Posted on 2005-02-09
7
2,609 Views
Last Modified: 2012-05-05
I've been getting the following error when attempting to do a 4 part query against my Linked server:

     Server: Msg 7353
     OLE DB provider 'MSDASQL' supplied inconsistent metadata.  An extra column was supplied during execution that was not found at compile time.

The error message then lists the offending field.  

I've dropped and recreated the linked server.  
One more interesting note:  If I create a view that references that linked table such as:

     Create view vPV_SOrder as Select * from OpenQuery(ServerName, 'Select * from PV_SOrder')

and then do a select on that view (Select * from vPV_SOrder), I will not get the error.

Is a 'rebuild' of the schema necessary on the Linked Server side?  SQL Server side?

This table was modified with the additional table, but there were also many other tables that had fields modified that do not return the error.

Thanks for any help.

Bill
0
Comment
Question by:bwarneke
  • 4
  • 2
7 Comments
 
LVL 34

Accepted Solution

by:
arbert earned 250 total points
ID: 13272415
Couple things, of course, dropping and recreating the link should resolve the problem, you can also change the "lazy schema" validation:

sp_serveroption 'Your Server Name', 'lazy schema validation', false



Brett
0
 
LVL 3

Assisted Solution

by:Terryute68
Terryute68 earned 250 total points
ID: 13274384
bwarneke,

I also remember this to be a bug. The fix at the time was to create a view just as you did.
Here is an article that may help you fix the problem.

http://www.sqlservercentral.com/columnists/jtravis/changingcolumn.asp

0
 

Author Comment

by:bwarneke
ID: 13275067
Thanks arbert.  I forgot to mention that I had attempted the sp_serveroption setting.  If I set the value to true, I get the following (confusing!) message:

     The 'lazy schema validation' option is ignored in this edition of SQL Server.

We are running SQL 2000 Standard Edition.  Is it available only to Enterprise edition?


0
Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

 

Author Comment

by:bwarneke
ID: 13275087
Thanks for the post Terryute68.  

That looks like it would work for me.  It looks like the script needs to be run against the source DB.  But, my source data is a Progress DB.  I will check their KB to see if something similar is possible.

Thanks.

Bill
0
 
LVL 34

Expert Comment

by:arbert
ID: 13275355
Ouch, that shows updating the system tables anyway--not a good idea.  Did you try to drop and recreate the linked server?
0
 

Author Comment

by:bwarneke
ID: 13276516
Yes.  Same results.
0
 

Author Comment

by:bwarneke
ID: 13287333
The issue is with the Progress DB.  The syscolumns table has an ID field.  There is a gap in the sequence.  This causes the error from SQL Server.

There is a fix.  Drop and re-create the offending table.  The ID fields will be ordered properly when the table is re-created.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question