This post explains the error message you might get in SQL Server: The OLE DB provider “SQLNCLI11” for linked server “[…]” supplied inconsistent metadata for a column. The column “[…]” (compile-time ordinal 1) of object “[query…]” was reported to have a Incomplete schema-error logic.
You might get the above error message, when you are trying to connect to a SQL Server instance, from another server, using SQL Server Native Client 11.0.
SQL Server 2012 Native Client (yes, that is SQL Server Native Client 11.0 – download here), is a stand-alone data access application programming interface (API), used for both OLE DB and ODBC (learn more).
SQL Server Native Client, even deprecated (we will talk more about this later), it still heavily used, mostly for integrating different systems/applications with SQL Server, or even integrate different SQL Server instances via linked servers.
So, if you are in a situation where you got the above message, don’t worry because there is a logical explanation about it.
Read on to learn more!
The first thing to try
The first thing to try and do, hoping that it might resolve the issue, is to use OPENQUERY in case you are using the four-part naming approach.
Example:
Instead of this:
SELECT * FROM [LINKEDSERVER].[DBNAME].[SCHEMA].[TABLENAME];
Try this:
SELECT * FROM OPENQUERY([LINKEDSERVER], 'SELECT * FROM [DBNAME].[SCHEMA].[TABLENAME]');
If the above solved your problem, that’s great, you are in luck.
Another thing to try
If the previous step didn’t help, another thing to try, is to make sure that you are using updated connectivity drivers. For example, if you are using SQL Server Native Client 10.0, you can try using SQL Server Native Client 11.0 (even though, you should not be using SQL Server Native Client on new development work, as I explain further in this article).
A server reboot maybe?
Something else you can try, if you have the luxury and the required approved downtime of course, is to reboot the server onto which you are trying to use the SQL Server Native Client (not the database server itself!).
Why do you get the “…supplied inconsistent metadata for a column..” error?
If all of the above cannot help, then it’s time to further discuss this in order to better evaluate the situation.
Therefore, there are 2 things that you need to take into consideration when using SQL Server Native Client:
Fact 1: As per Microsoft’s official documentation, SQL Server Native Client (SQLNCLI) remains deprecated and you should not use it in new development work. Instead, Microsoft advises that you should use the new Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL), since it is the driver that will be updated with the most recent server features.
Fact 2: As per Microsoft’s “Support Policies for SQL Server Native Client” document, SQL Server Native Client 11.0 supports connections to, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11.x), SQL Server 2014 (12.x), and Azure SQL Database.
Strengthen your SQL Server Administration Skills – Enroll to our Online Course!
Via the course, you will learn essential hands-on SQL Server Administration tips on SQL Server maintenance, security, performance, integration, error handling and more. Many live demonstrations and downloadable resources included!
(Lifetime Access/ Live Demos / Downloadable Resources and more!)
The above 2 facts already shed enough light on the error message that you get.
So, if for example you are using SQL Server 2012 Native Client (SQLNCLI 11.0), for accessing a SQL Server instance that is later than SQL Server 2014 (i.e. SQL Server 2017 or 2019), then you are most probably getting the “…supplied inconsistent metadata for a column..” error message, due to the fact that SQLNCLI 11.0 supports connecting only up to SQL Server 2014.
However, before start using the Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL), you will need to check and handle any required changes (if applicable), you might need to perform on the application’s side due to the driver change.
Important Note: There is another type of older Microsoft OLE DB Driver for SQL Server (SQLOLEDB). This is also deprecated and it is not recommended to use either for new development work.
Artemakis Artemiou is a Senior SQL Server Architect, Author, a 9 Times Microsoft Data Platform MVP (2009-2018) and a Udemy Instructor. He has over 15 years of experience in the IT industry in various roles. Artemakis is the founder of SQLNetHub and TechHowTos.com. Artemakis is the creator of the well-known software tools Snippets Generator and DBA Security Advisor. Also, he is the author of many eBooks on SQL Server. Artemakis currently serves as the President of the Cyprus .NET User Group (CDNUG) and the International .NET Association Country Leader for Cyprus (INETA). Moreover, Artemakis teaches on Udemy, you can check his courses here.
Views: 2,706
Online Course Offer | “SQL Server Fundamentals – SQL Database for Beginners“
SQL Server Database training for beginners, that covers SQL Server on both Windows and Linux.
Best practice recommendations are also included in live demonstrations.
This site uses cookies for personalized content and the best possible experience. By continuing to browse this site, you agree to this use. Find out more.