We help IT Professionals succeed at work.

SQL_Latin1_General_CP1_CI_AS v.  Latin1_General_CP1_CI_AS

Can any help me with understanding the difference between SQL_Latin1_General_CP1_CI_AS and  Latin1_General_CP1_CI_AS?

I've read some stuff, but I'm still unclear.  If the same collation is used within a single database, does it matter which one of these I use?  Is it only performance?  If all our data character is english, does it matter which is used?  

Is the default collation different for SQL server versions?
Comment
Watch Question

The collation has a significant impact on the default sorting of strings.

That being said, once you have finalized on the collation, my recommendation would be to remain consistent throughout the database, unless there is a specific need to do so (e.g. a particular column may need to be case sensitive, etc).

For English data that does not need to be case sensitivie or accent sensitive, SQL_Latin1_General_CP1_CI_AS is generally a good choice (we use that as the standard in my projects).

Finally, collation is something that needs to be selected/chosen by the person installing SQL Server as part of the installation sequence. If I am not mistaken, the default collation presented to the user at install time is based on the Windows System locale. The user can then change it based on the deployment requirements.

Author

Commented:
I understand about sticking with one collation within the database.  

I have two databases, one is a development database and one is a production database, and they are on SQL servers that are different versions and that have a different default collation.   During development, I add a text columns to a table, and the column defaults to SQL_Latin1_General_CP1_CI_AS.    I did the same on the production database.  Then before we do a production release of code I use a software tool to sync the schema between the development and production databases, to make sure everything is the same.    The production database has a default collation of Latin1_General_CP1_CI_AS.  So, the tool always pick up on this difference for a column that was manually created in both databases.  Question - Is this an issue?  Sounds like it is, since the schema tool will now change the collation on the column from  Latin1_General_CP1_CI_AS to SQL_Latin1_General_CP1_CI_AS.

Author

Commented:
Follow up - Is there a way  to check the collation on all text columns within a database ?  I want to see if they are all the same.
IT Engineer
Distinguished Expert 2017
Commented:
SQL_Latin1_General_CP1_CI_AS is a SQL Server collation and  Latin1_General_CP1_CI_AS is a Windows collation.
As I could stat the main difference between them is how they handle with Unicode data (for sort and comparison purposes).
With a SQL collation you can't for example compare a varchar with a nvarchar value. With Windows collation you can because it does an implicit conversion.

Author

Commented:
thanks