Skip to main content

Installing SQL 2012 with a Configuration File

I've always preferred installing SQL with an answer file (configuration file) to save time and keep my installations consistent. That holds true for SQL12 as well, but it seems there are some slight changes you'll need to make from the 08/R2 days so I might as well post them here in case I forget!

SQL File Locations

  • SQL
  • SQL\STD
  • SQL\ENT
  • SQL\CU1

For those of you also using the Enterprise edition, you want to be really careful not to accidentally deploy it as it's far more costly in term of licensing. So make a folder layout that makes sense and stick to it everywhere.

First off, if you don't have a config file, just make one. Run the SQL setup right up to the point of installation, but then stop and copy the ConfigurationFile.ini offered to you before proceeding with the install. Then just cancel the install and copy the file to a permanent location so you can modify and test it.

Edit ConfigurationFile.ini

The 1st thing you'll want to add is the acceptance of the EULA which doesn't get copied in.

ACCEPTSQLSERVERLICENSETERMS="True"

Just add it under [OPTIONS] at the top of the file.

Add a semicolon before UIMODE as we're trying to stay silent and that parameter cannot be used with a silent switch.

Set either QUIET or QUIETSIMPLE to "True" - the former forces a completely silent install which is nice if you want to send this with CM. The latter is nice during testing to watch the progress.

New to SQL12 is something called Product Updates. It replaces slipstreaming and makes updates a breeze.

Product Update can pull in a cumulative update, service pack, or service pack plus cumulative update.

So instead of the old PCUSOURCE and CUSOURCE locations, you simply point SQL to either "MU" for Microsoft Updates or to a local folder or UNC.

To make it work, just make sure you have UpdatesEnabled="True" and then set UpdateSource="\\myserver\sqlshare\CU1" in the ini file. I extracted Cumulative Update 1 for SQL 12 to the CU1 folder (run it with /X). Then ran the SQL install via command line.

Command Line to Install

\\myserver\sqlshare\STD\setup.exe /ConfigurationFile=C:\Storage\ConfigurationFile.ini

And 10 minutes later, I had a fully function SQL12 v11.0.2316 running. So CU1 clearly installed.

Update for SQL 2014

Because we can now upgrade SQL for CM, I'll point out that this can also be made easy using a configuration file. And because CU1 for SQL 2014 is out too, I've set my upgrade to install that at the same time (it has many fixes I want). Also, in the instructions above, I mention that I extract the CU files. You don't have to do that. So I have a folder on a share with the single exe file for CU1 and just call that out: SQL is smart enough to extract and install it on the fly if our configuration file asks for it.

Here is a copy of the SQL configuration file I just used to upgrade my primary site which upgraded SQL to 12.00.2342. Note that I stopped CM services before starting the upgrade. I also reboot for good measure at the end though it seems I don't really need to do that.

;SQL Server 2014 Configuration File
[OPTIONS]

IACCEPTSQLSERVERLICENSETERMS="True"

; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.

ACTION="Upgrade"

; Use the /ENU parameter to install the English version of SQL Server on your localized Windows operating system.

ENU="True"

; Parameter that controls the user interface behavior. Valid values are Normal for the full UI,AutoAdvance for a simplied UI, and EnableUIOnServerCore for bypassing Server Core setup GUI block.

; UIMODE="Normal"

; Setup will not display any user interface.

QUIET="True"

; Setup will display progress only, without any user interaction.

QUIETSIMPLE="False"

; Specify whether SQL Server Setup should discover and include product updates. The valid values are True and False or 1 and 0. By default SQL Server Setup will include updates that are found.

UpdateEnabled="True"

; Specify if errors can be reported to Microsoft to improve future SQL Server releases. Specify 1 or True to enable and 0 or False to disable this feature.

ERRORREPORTING="True"

; If this parameter is provided, then this computer will use Microsoft Update to check for updates.

USEMICROSOFTUPDATE="True"

; Specify the location where SQL Server Setup will obtain product updates. The valid values are "MU" to search Microsoft Update, a valid folder path, a relative path such as .\MyUpdates or a UNC share. By default SQL Server Setup will search Microsoft Update or a Windows Update service through the Window Server Update Services.

UpdateSource="\\myserver\sqlshare\SQL\14\LatestCU"

; Displays the command line parameters usage

HELP="False"

; Specifies that the detailed Setup log should be piped to the console.

INDICATEPROGRESS="False"

; Specifies that Setup should install into WOW64. This command line argument is not supported on an IA64 or a 32-bit system.

X86="False"

; Specify a default or named instance. MSSQLSERVER is the default instance for non-Express editions and SQLExpress for Express editions. This parameter is required when installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting Services (RS).

INSTANCENAME="MSSQLSERVER"

; Specify that SQL Server feature usage data can be collected and sent to Microsoft. Specify 1 or True to enable and 0 or False to disable this feature.

SQMREPORTING="True"

; Specify the Instance ID for the SQL Server features you have specified. SQL Server directory structure, registry structure, and service names will incorporate the instance ID of the SQL Server instance.

INSTANCEID="MSSQLSERVER"

; Specifies whether the upgraded nodes should take ownership of the failover instance group or not. Use 0 to retain ownership in the legacy nodes, 1 to make the upgraded nodes take ownership, or 2 to let SQL Server Setup decide when to move ownership.

FAILOVERCLUSTERROLLOWNERSHIP="2"

  • Created on .