4

I have researched this topic through the web but can't find a definitive answer.

Our server team has recently upgraded our SQL Servers VMs from Win 2003 to Win 2012.

Given our region we run all our in-house built apps under en-ZA.

However we have a work around where SQL Server 2012 needs to run under an account with en-US settings. This is to support a legacy metastorm workflow application.

The issue comes into play when the sql server agent job triggers a console app (en-ZA) to generate a comma delimited file with large monetary values.

The agent is running under en-US so the app goes "SOMEWHERE" (I am hoping an editable OS store of sorts) and gets the "DEFAULT" en-ZA settings which have changed since Win 2003.

The comma delimited file now has a decimal separator of "COMMA" instead of "DOT". Previous Win 2003 version had a "DOT" decimal separator for large monetary values.

The comma in the monetary values causes an issue in another importer app down the line.

The question is where are the default values for the region stored? and how can they be changed? I need to know this so I can revert the default settings for en-ZA to the way it was in Win 2003.

I know region settings can be customized for an account but how can the actual default en-ZA settings be changed.

If I can understand this then maybe this can be corrected via group policy.

rizan
  • 149
  • 1
  • 1
  • 4

3 Answers3

4

You can also do it from the Control Panel, without changing manually the registry. There's an option allowing you to apply the Current User settings to the System Accounts.

Open Language --> Advanced settings --> Apply language settings to...

Language --> Advanced settings

Then click the button "Copy Settings" and check the option "Copy to Welcome Screen and System Accounts".

Done.

Copy Settings

3

Regional settings are applied per user. For the system account you can change it via the regisrty, see here

Change the HKEY_USERS/.DEFAULT/International/sDecimal key

Ross Jones
  • 161
  • 4
1

What you're looking for is the "regional settings".

In Server 2012, (at least with US English), you can access them by opening up the Start menu and typing "Regional." It's under settings, and the only item that comes up, titled Change date, time or number formats.

If you click the Additional settings... button, and then the Currency tab, you can customize the format, and change your "decimal symbol" and/or "Digit grouping symbol" to something that won't cause problems form your SQL server.

enter image description here

If you wish to change this via GPO, or heaven forbid, editing the actual registry values, there's a technet blog on how to do it that way as well. It's done through a Computer Group Policy Preference Registry collection (Computer Configuration -> Preferences -> Windows Settings -> Registry), and the registry subkeys you want are located under HKEY_CURRENT_USER\Control Panel\International.

HopelessN00b
  • 53,385
  • 32
  • 133
  • 208