I am working with two different database components in my application and have come across a curious behavior regarding the SQL Server Native Client versions (SQLNCLI.1 and SQLNCLI11) in connection strings.
First Component Behavior: One of the database components I am using automatically generates a connection string that includes Provider=SQLNCLI.1. Surprisingly, this works seamlessly even though I have only SQL Server Native Client 11 (SQLNCLI11) installed on my PC.
Second Component Behavior: Another component in my application uses SQLNCLI11 explicitly in the connection string. It also functions correctly, as expected, since SQLNCLI11 is installed on my machine.
Given this context, I have several questions:
What are the primary differences between SQLNCLI.1 and SQLNCLI11? I Thought SQLNCLI.1 is older? Is there some form of backward compatibility or aliasing in SQL Server Native Clients that would explain why SQLNCLI.1 works even though only SQLNCLI11 is installed?