sql-serverwindowscollation

SQL Server collation default for US/English - best practice


Briefly stated: As a Windows DBA in the US/English locale, is it worth setting Latin1_General_CI_AS as your system-level default on new SQL server builds, or is it wiser to stick with the SQL_Latin1_General_CP1_CI_AS default for the foreseeable future? Do we think MS will eventually make Latin1_General_CI_AS the default in the US?

More background:

https://learn.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16#Server-level-collations

Per Microsoft, if your Windows locale is any English speaking country (except the US) your default SQL server collation during setup is: Latin1_General_CI_AS, but in the US it is still SQL_Latin1_General_CP1_CI_AS for backward compatibility. New databases take the system collation by default (unless you override), etc...

We have kept the SQL_Latin1_General_CP1_CI_AS as the default on our own SQL server builds, and our in-house databases have evolved with that same collation. We just received our first database with Latin1_General_CI_AS from a third party and it got me to question if we should be getting behind the "newer" way of collating, especially if we cross join or interact between databases in the same environment.

I know we can do collate commands for joins between the different databases, but I was curious if folks are preemptively configuring Latin1_General_CI_AS as their server level default in US English locale to be more compatible with folks in other countries or to get ahead of any possible "final pivot" on Microsoft's side in future Windows builds.

Thanks!


Solution

  • Briefly stated: As a Windows DBA in the US/English locale, is it worth setting Latin1_General_CI_AS as your system-level default on new SQL server builds

    Briefly answered: no.

    The only time you're going to care about the instance collation is when an existing workload breaks because of it. And sticking with the old SQL collation instead of the better-and-more-modern Windows collation is the lower-risk path for DBAs.

    Individual databases can adopt Latin1_General_CI_AS and accept that tempdb will use SQL_Latin1_General_CP1_CI_AS, or can adopt partial database containment and get contained database collation.