SQL: What's that 1033 thing and what are locale IDs?

SQL: What's that 1033 thing and what are locale IDs?

When writing and working with T-SQL in SQL Server, you’ll often come across the number 1033. In many cases, that will have the word English associated with it. But what are these numbers, and which ones does SQL Server know about?

The number 1033 comes from the reference to a Windows Locale ID. You’ll find the list of Windows Locale IDs here:

Microsoft Locale ID List

It’s a big list with entries that look like this:

Here are the entries for English:

LCID Language (Region) Locale
9225 English - Caribbean en-029
3081 English - Australia en-AU
10249 English - Belize en-BZ
4105 English - Canada en-CA
2057 English - United Kingdom en-GB
15369 English - Hong Kong SAR en-HK
14345 English - Indonesia en-ID
6153 English - Ireland en-IE
16393 English - India en-IN
8201 English - Jamaica en-JM
17417 English - Malaysia en-MY
5129 English - New Zealand en-NZ
13321 English - Philippines en-PH
18441 English - Singapore en-SG
11273 English - Trinidad en-TT
1033 English - United States en-US
7177 English - South Africa en-ZA
12297 English - Zimbabwe en-ZW

Note that 1033 is the default English locale and it’s the one for the United States. (Much to the dismay of my English friends in the UK who actually thought they owned the language, that their dialect would be the default, and the US version would just be a variant).

Anyway, how do we relate these to SQL Server, and which ones does it know?

We’ll find these in the sys.syslanguages system view (wrapped for clarity:

Notice that it shows the names of the months and days, and has a mapping from the lcid locale ID values across to the language IDs that are used in the sys.sysmessages (which contains the error messages that come from SQL Server):

2026-03-13