3

My goal is to install MS SQL Server 2012 R2 Express.

I've downloaded SQLEXPRADV_x64_ENU.exe and used /ACTION=Install /UIMODE=Normal to generate and modify a configuration file. No matter how I fiddle with the configuration, it will either install a "default" or "named" instance of the standard edition, although I don't specify a license (disregard the red arrow in this image, I'm selecting the other option).

What gives? Which setting do I need to supply or alter in order to install the Express edition?

Update: I've been told I might have the wrong version of the installer. (Brilliant of them to name all versions the same.) I'm currently downloading again, unsure whether it's not the one I already have (which, if I right-click and choose "Properties", tells me it's a "Microsoft SQL Server 2012 Express Advanced Edition").

I know where to download Microsoft SQL Server 2008 R2 Express, and I know where to download Microsoft SQL Server 2012 Express, but where in the world is Microsoft SQL Server 2012 R2 Express? The client wants to use "MS SQL Server R2 with Advanced Tools", either 2008 or 2012 (and eventually even 2014).


Since you'll most likely ask this, I'm including my full configuration file here:

;SQL Server 2012 Configuration File

; DEVELOPER'S NOTE
; This file was obtained from the installer using the switches "/ACTION=Install /UIMODE=Normal" which yields the FULL set of wizard pages AND the ability to save a new configuration file.
; See also: https://technet.microsoft.com/en-us/library/ms144259%28v=sql.110%29.aspx

; Values that need to be changed before use:
;INSTANCENAME="{INSTANCENAME}"
;INSTANCEID="{INSTANCEID}"
;SQLSVCACCOUNT="NT Service\MSSQL${INSTANCENAME}"
;SQLSVCPASSWORD="{SQLSVCPASSWORD}"
;SQLSYSADMINACCOUNTS="{HOSTNAME}\Administrator"
;SAPWD="{SAPWD}"
;RSSVCACCOUNT="NT Service\ReportServer${INSTANCENAME}"
;FTSVCACCOUNT="NT Service\MSSQLFDLauncher${INSTANCENAME}"
;QUIETSIMPLE="True" -- I recommend you pass "/QS" to the installer rather than editing this value

[OPTIONS]
; Required to acknowledge acceptance of the license terms.
IACCEPTSQLSERVERLICENSETERMS="True"
; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.
ACTION="Install"
; Detailed help for command line argument ROLE has not been defined yet.
;ROLE="AllFeatures_WithDefaults"
; Detailed help for command line argument ENU has not been defined yet.
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="False"
; 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="False"
; Specifies features to install, uninstall, or upgrade. The list of top-level features include SQL, AS, RS, IS, MDS, and Tools. The SQL feature will install the Database Engine, Replication, Full-Text, and Data Quality Services (DQS) server. The Tools feature will install Management Tools, Books online components, SQL Server Data Tools, and other shared components.
FEATURES=SQL,AS,RS,DQC,IS,MDS,Tools,SNAC_SDK
;FEATURES=SQLENGINE,REPLICATION,FULLTEXT,RS,BIDS,BOL,SSMS,SNAC_SDK
; 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="MU"
; Displays the command line parameters usage
HELP="False"
; Specifies that the detailed Setup log should be piped to the console.
INDICATEPROGRESS="True"
; 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 the root installation directory for shared components. This directory remains unchanged after shared components are already installed.
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
; Specify the root installation directory for the WOW64 shared components. This directory remains unchanged after WOW64 shared components are already installed.
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
; 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="{INSTANCENAME}"
; 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="{INSTANCEID}"
; 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="False"
; RSInputSettings_RSInstallMode_Description
RSINSTALLMODE="DefaultNativeMode"
; 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="False"
; Specify the installation directory.
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
; Agent account name
AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
; Auto-start service after installation.
AGTSVCSTARTUPTYPE="Automatic"
; CM brick TCP communication port
COMMFABRICPORT="0"
; How matrix will use private networks
COMMFABRICNETWORKLEVEL="0"
; How inter brick communication will be protected
COMMFABRICENCRYPTION="0"
; TCP port used by the CM brick
MATRIXCMBRICKCOMMPORT="0"
; Startup type for the SQL Server service.
SQLSVCSTARTUPTYPE="Automatic"
; Level to enable FILESTREAM feature at (0, 1, 2 or 3).
FILESTREAMLEVEL="0"
; Set to "1" to enable RANU for SQL Server Express.
ENABLERANU="True"
; Specifies a Windows collation or an SQL collation to use for the Database Engine.
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
; Account for SQL Server service: Domain\User or system account.
SQLSVCACCOUNT="NT Service\MSSQL${INSTANCENAME}"
SQLSVCPASSWORD="{SQLSVCPASSWORD}"
; Windows account(s) to provision as SQL Server system administrators.
SQLSYSADMINACCOUNTS="{HOSTNAME}\Administrator"
; The default is Windows Authentication. Use "SQL" for Mixed Mode Authentication.
SECURITYMODE="SQL"
SAPWD="{SAPWD}"
; Provision current user as a Database Engine system administrator for SQL Server 2012 Express.
ADDCURRENTUSERASSQLADMIN="True"
; Specify 0 to disable or 1 to enable the TCP/IP protocol.
TCPENABLED="1"
; Specify 0 to disable or 1 to enable the Named Pipes protocol.
NPENABLED="1"
; Startup type for Browser Service.
BROWSERSVCSTARTUPTYPE="Disabled"
; Specifies which account the report server NT service should execute under.
RSSVCACCOUNT="NT Service\ReportServer${INSTANCENAME}"
; Specifies how the startup mode of the report server NT service.
RSSVCSTARTUPTYPE="Automatic"
; Add description of input argument FTSVCACCOUNT
FTSVCACCOUNT="NT Service\MSSQLFDLauncher${INSTANCENAME}"
3
  • I don't believe there is a SQL Server 2012 R2 Express, it looks like 2008R2 is the only "R2" SQL Server. The rest just have service packs. Dec 19, 2015 at 18:03
  • That's interesting, @JoshuaMcKinnon. "Non-information" like this is quite hard to find out. I'll check, and possibly have to ask the client how to proceed.
    – KlaymenDK
    Dec 19, 2015 at 21:48
  • The whole unattended install has me quite curious, I've been toying around with it today (with 2012 express) but don't have an answer to the main question yet. Easiest place to list all versions is probably MSDN though (but only if you have a subscription) Dec 20, 2015 at 0:48

1 Answer 1

3

Wrong Installer?

I think this is going to come down to the wrong installer. I downloaded the SQL Server 2012 Express Advanced Edition installer from the link you mention and was able to follow your steps broadly but I saw a notable difference.

My Product Key screen is different from your screenshot. Mine only lists Express in the dropdown menu, not "Evaluation" - I think Evaluation showing up at all indicates you've got a Standard (or other) edition installer.screenshot of product key config on my sql server 2012 express

A quick way to verify your installer is a different file would be to compare the hash. The sha1 hash I get on this file is E1F8DEC35422A67E6733E53ED260CCE538E97EDC. FCIV or Get-FileHash (PowerShell 4.0?) are two examples on Windows.

This alone is not muchof an answer though, so I've gone ahead and done a complete unattended install. First, I created a ConfigurationFile.ini just as you did.

Unattended Install

SQLEXPRADV_x64_ENU.exe /ACTION=Install /UIMode=Normal

I followed along with the installer right up to the "Ready to Install" page of the installer, which shows you the path to the ConfigurationFile.ini it's created. In my case:

C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\Log\<timestamp>\ConfigurationFile.ini

Copy or save this file where you want it, along with copying the whole installation dir before closing the installer. If you're doing unattended installs you won't want to guess and copy the dir name each time. I do think the extracted install dir + setup.exe is needed for unattended install, I had no luck trying to run SQLEXPRADV_x64_ENU.exe with /CONFIGURATIONFILE directly.

The configuration file didn't appear to keep any passwords specified (in my case just SAPWD since I enabled Mixed-Mode auth in my example), so that would either need to be added to the file afterwards or specified as a command-line argument.

You will want to edit your ConfigurationFile.ini to set Quiet="True" and comment out the UIMode=Normal, as for unattended install you generally don't want a GUI, and without this, it would just launch the installer and wait for user input.

;UIMODE="Normal"

; Setup will not display any user interface. 
QUIET="True"

Alternatively, you can call SQLEXPRADV_x64_ENU.exe with the /? argument to get a full list of parameters, as well as an unattended example at the bottom for installing without using a configuration file and just manually passing required options. Its example specifies setup.exe, so I think the above holds about needing the extracted dir. It's really long so I've kept that out of my answer. These are also documented here, so the file could be manually created. Do note the link may have options not available in Express.

Finally, with the installer and configuration files copied to target machine and any desired modifications made to the config file:

setup.exe /CONFIGURATIONFILE=c:\path\to\myConfigurationFile.ini /IAcceptSQLServerLicenseTerms /SAPWD="****************"

Notably /IAcceptSQLServerLicenseTerms is important, if you omit it, it will tell you that it must be specified. It's possible you can specify it in your .ini but I did not test this. ***'s are in place of my test SA password. If you don't enable mixed-mode or you add any PWs to configurationfile, that part may not be necessary.

Verifying Express Edition

I then found a cool script to tell you the version of your SQL Server server (and edition) here on technet since I didn't know how to truly verify my edition post install, given the original question is due to it appearing to install Standard edition instead of Express. I admit, I would have been very surprised if an Express installer from MS download ended up installing another edition.

This part is of course not necessary, but the direct link is here.

Here's the output I got in my case:

---------------------------------------------------------------------------------------------------------
--//Your current Microsoft SQL Server information:
---------------------------------------------------------------------------------------------------------
Product Version:          11.0.2100.60
Product Name:             SQL Server 2012
Product Level:            RTM 
Product Edition:          Express Edition (64-bit)
---------------------------------------------------------------------------------------------------------
Note, if you want to know information about CU, please read this KB below.
KB321185, <https://support.microsoft.com/en-us/kb/321185>
---------------------------------------------------------------------------------------------------------
Support Lifecycle stage: Mainstream Support Phase, however security/non-security updates are not available for
current 2012 baseline. Upgrade to SP2 for security/Non-security updates. For additional information refer to:
https://support.microsoft.com/en-us/lifecycle/search?sort=PN&alpha=SQL%20Server&Filter=FilterNO, and Q6, Q18
in the FAQ section of Support Lifecycle page at: https://support.microsoft.com/en-us/lifecycle#gp/lifePolicy
---------------------------------------------------------------------------------------------------------
Full information:
Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 
    Feb 10 2012 19:39:15 
    Copyright (c) Microsoft Corporation
    Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)

---------------------------------------------------------------------------------------------------------
--//Recommended updates: 
--### RTM -> QFE or GDR
--### SP  -> QFE or GDR
--### QFE -> QFE
--### GDR -> GDR or QFE
---------------------------------------------------------------------------------------------------------
Install the latest service pack:              SP3, <https://support.microsoft.com/en-us/kb/3072779>

---------------------------------------------------------------------------------------------------------
###### QFE branch updates
---------------------------------------------------------------------------------------------------------
11.0.2376 (SQL Server 2012 RTM QFE) http://support.microsoft.com/en-us/kb/2716441
11.0.3513 (SQL Server 2012 SP1 QFE) https://support.microsoft.com/en-us/kb/3045317
11.0.5613 (SQL Server 2012 SP2 QFE) https://support.microsoft.com/en-us/kb/3045319
---------------------------------------------------------------------------------------------------------
###### GDR branch updates
---------------------------------------------------------------------------------------------------------
11.0.2218 (SQL Server 2012 RTM GDR) https://support.microsoft.com/en-us/kb/2716442
11.0.3153 (SQL Server 2012 SP1 GDR) http://support.microsoft.com/kb/2977326/en-us
11.0.3156 (SQL Server 2012 SP1 GDR) https://support.microsoft.com/en-us/kb/3045318
11.0.5343 (SQL Server 2012 SP2 GDR) https://support.microsoft.com/en-us/kb/3045321
---------------------------------------------------------------------------------------------------------
Note, if you don’t want to upgrade to latest service pack right now, we recommend you install the latest
Cumulative Update CU11 of SQL Server 2012 RTM.
Install the latest Cumulative Update (CU) of RTM: CU11, <https://support.microsoft.com/en-us/kb/2908007>


---------------------------------------------------------------------------------------------------------
--//You can upgrade to any of the following product(s):
---------------------------------------------------------------------------------------------------------
If you want to upgrade to higher edition, please intall service pack.


For additional information about supported version and edition upgrades refer to:
https://technet.microsoft.com/en-us/library/ms143393(v=sql.120).aspx
4
  • Wow, I must say you've gone above and beyond. And here I am, only able to give you a single upvote (and an acceptance, I suspect, once I check out your links (I'm currently on vacation, and "not even here")).
    – KlaymenDK
    Dec 21, 2015 at 11:37
  • Regarding UIMODE and QUIET, I override those as command-line parameters in the script that starts the installer.
    – KlaymenDK
    Dec 29, 2015 at 14:30
  • @KlaymenDK Yes, it seems like using the command-line options for those is also done / possibly a common approach. Either place is fine. Jan 1, 2016 at 5:59
  • In the end, I concluded that the registry is wrong / not detailed enough. The detailed installation log does say it's an express edition (however, reading the log file is "depending on possibly stale information" compared to looking at the "live" registry). Fine, whatever, I guess this is just how MS works.
    – KlaymenDK
    Jan 4, 2016 at 15:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .