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 seasoned Senior Database and AI/Automation Architect with over 20 years of expertise in the IT industry. As a Certified Database, Cloud, and AI professional, he has been recognized as a thought leader, earning the prestigious Microsoft Data Platform MVP title for nine consecutive years (2009-2018). Driven by a passion for simplifying complex topics, Artemakis shares his expertise through articles, online courses, and speaking engagements. He empowers professionals around the globe to excel in Databases, Cloud, AI, Automation, and Software Development. Committed to innovation and education, Artemakis strives to make technology accessible and impactful for everyone.
Views:13,464
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent. Read More
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.