SQL Server Setup and Management including Developer, Express, and LocalDB editions. The intended use of this project is for Continuous Integration (CI) scenarios, where:
SQL Server Setup defaults:
✔ 2025 Developer 🡒 17.0.925.4 Enterprise Developer Edition
(64-bit) RC1
✔ 2025 LocalDB 🡒 17.0.925.4 LocalDB Express
Edition (64-bit) RC1
✔ 2022 Developer Update 🡒
16.0.4135.4 RTM CU14 Developer Edition (64-bit)
✔ 2022
Developer 🡒 16.0.1000.6 RTM Developer Edition (64-bit)
✔
2022 Advanced Update 🡒 16.0.4135.4 RTM CU14 Express Edition
(64-bit)
✔ 2022 Advanced 🡒 16.0.1000.6 RTM Express
Edition (64-bit)
✔ 2022 Core Update 🡒 16.0.4135.4 RTM
CU14 Express Edition (64-bit)
✔ 2022 Core 🡒 16.0.1000.6
RTM Express Edition (64-bit)
✔ 2022 LocalDB 🡒
16.0.1000.6 RTM LocalDB Express Edition (64-bit)
✔ 2019
Developer Update 🡒 15.0.4385.2 RTM CU28 Developer Edition
(64-bit)
✔ 2019 Developer 🡒 15.0.2000.5 RTM Developer
Edition (64-bit)
✔ 2019 Advanced Update 🡒 15.0.4385.2
RTM CU28 Express Edition (64-bit)
✔ 2019 Advanced 🡒
15.0.2000.5 RTM Express Edition (64-bit)
✔ 2019 Core
Update 🡒 15.0.4385.2 RTM CU28 Express Edition (64-bit)
✔
2019 Core 🡒 15.0.2000.5 RTM Express Edition (64-bit)
✔
2019 LocalDB 🡒 15.0.2000.5 RTM LocalDB Express Edition
(64-bit)
✔ 2017 Developer Update 🡒 14.0.3456.2 RTM CU31
Developer Edition (64-bit)
✔ 2017 Developer 🡒
14.0.1000.169 RTM Developer Edition (64-bit)
✔ 2017 Advanced
Update 🡒 14.0.3456.2 RTM CU31 Express Edition (64-bit)
✔
2017 Advanced 🡒 14.0.1000.169 RTM Express Edition (64-bit)
✔ 2017 Core Update 🡒 14.0.3456.2 RTM CU31 Express Edition
(64-bit)
✔ 2017 Core 🡒 14.0.1000.169 RTM Express Edition
(64-bit)
✔ 2017 LocalDB 🡒 14.0.1000.169 RTM LocalDB
Express Edition (64-bit)
✔ 2016 Developer Update 🡒
13.0.6441.1 SP3 Developer Edition (64-bit)
✔ 2016
Developer 🡒 13.0.6404.1 SP3 Developer Edition (64-bit)
✔
2016 Advanced Update 🡒 13.0.6441.1 SP3 Express Edition
(64-bit)
✔ 2016 Advanced 🡒 13.0.6404.1 SP3 Express
Edition (64-bit)
✔ 2016 Core Update 🡒 13.0.6441.1 SP3
Express Edition (64-bit)
✔ 2016 Core 🡒 13.0.6404.1 SP3
Express Edition (64-bit)
✔ 2016 LocalDB 🡒 13.0.6300.2
SP3 LocalDB Express Edition (64-bit)
✔ 2014-x64
Developer 🡒 12.0.6024.0 SP3 Developer Edition (64-bit)
✔
2014-x64 Advanced 🡒 12.0.6024.0 SP3 Express Edition
(64-bit)
✔ 2014-x64 Core 🡒 12.0.6024.0 SP3 Express
Edition (64-bit)
✔ 2014-x64 LocalDB 🡒 12.0.6024.0 SP3
LocalDB Express Edition (64-bit)
✔ 2014-x86 Developer 🡒
12.0.6024.0 SP3 Developer Edition
✔ 2014-x86 Advanced 🡒
12.0.6024.0 SP3 Express Edition
✔ 2014-x86 Core 🡒
12.0.6024.0 SP3 Express Edition
✔ 2012-x64 Developer 🡒
11.0.7001.0 SP4 Developer Edition (64-bit)
✔ 2012-x64
Advanced 🡒 11.0.7001.0 SP4 Express Edition (64-bit)
✔
2012-x64 Core 🡒 11.0.7001.0 SP4 Express Edition (64-bit)
✔ 2012-x64 LocalDB 🡒 11.0.7001.0 SP4 LocalDB Express Edition
(64-bit)
✔ 2012-x86 Developer 🡒 11.0.7001.0 SP4
Developer Edition
✔ 2012-x86 Advanced 🡒 11.0.7001.0 SP4
Express Edition
✔ 2012-x86 Core 🡒 11.0.7001.0 SP4
Express Edition
✔ 2008R2-x64 Developer 🡒 10.50.6000.34
SP3 Developer Edition (64-bit)
✔ 2008R2-x64 Advanced
Update 🡒 10.50.6000.34 SP3 Express Edition with Advanced Services
(64-bit)
✔ 2008R2-x64 Advanced 🡒 10.50.4000.0 SP2
Express Edition with Advanced Services (64-bit)
✔ 2008R2-x64
Core Update 🡒 10.50.6000.34 SP3 Express Edition (64-bit)
✔
2008R2-x64 Core 🡒 10.50.4000.0 SP2 Express Edition
(64-bit)
✔ 2008R2-x86 Developer 🡒 10.50.6000.34 SP3
Developer Edition
✔ 2008R2-x86 Advanced Update 🡒
10.50.6000.34 SP3 Express Edition with Advanced Services
✔
2008R2-x86 Advanced 🡒 10.50.4000.0 SP2 Express Edition with
Advanced Services
✔ 2008R2-x86 Core Update 🡒
10.50.6000.34 SP3 Express Edition
✔ 2008R2-x86 Core 🡒
10.50.4000.0 SP2 Express Edition
✔ 2008-x64 Advanced
Update 🡒 10.0.6000.29 SP4 Express Edition with Advanced Services
(64-bit)
✔ 2008-x64 Advanced 🡒 10.0.1600.22 RTM Express
Edition with Advanced Services (64-bit)
✔ 2008-x64 Core
Update 🡒 10.0.6000.29 SP4 Express Edition (64-bit)
✔
2008-x64 Core 🡒 10.0.5500.0 SP3 Express Edition (64-bit)
✔ 2008-x86 Advanced Update 🡒 10.0.6000.29 SP4 Express Edition
with Advanced Services
✔ 2008-x86 Advanced 🡒
10.0.1600.22 RTM Express Edition with Advanced Services
✔
2008-x86 Core Update 🡒 10.0.6000.29 SP4 Express Edition
✔ 2008-x86 Core 🡒 10.0.5500.0 SP3 Express Edition
✔
2005-x86 Advanced Update 🡒 9.00.5000.00 SP4 Express Edition
with Advanced Services
✔ 2005-x86 Advanced 🡒
9.00.3042.00 SP2 Express Edition with Advanced Services
✔
2005-x86 Core 🡒 9.00.5000.00 SP4 Express Edition
🌟 Install SQL Server 2022 Developer Edition with Cumulative Update as default instance (local) with UTF8 Collation:
Setup-SqlServers "2022 Developer Updated: MSSQLSERVER" `
"Collation=Latin1_General_100_CI_AS_SC_UTF8"🌟 Install four SQL Server Instances and their tempdb on
system drive, and place the data and log folders on the secondary
SSD:
$sqlServers=@"
2022 Developer Updated: DEVELOPER2022,
2019 Developer Updated: DEVELOPER2019,
2017 Developer Updated: DEVELOPER2017,
2016 Developer Updated: DEVELOPER2016
"@;
Setup-SqlServers $sqlServers `
"/SQLUSERDBDIR=D:\SQL\{InstanceName}-DATA" `
"/SQLUSERDBLOGDIR=D:\SQL\{InstanceName}-LOGS"🌟 Install SQL Server 2019 Developer Edition RTM as DEVELOPER2019 instance:
Setup-SqlServers "2019 Developer: DEVELOPER2019"🌟 Install SQL Server 2016 Developer Edition SP3 as DEVELOPER2016 instance tuned for performance:
$ENV:PS1_TROUBLE_SHOOT = "On"
$ENV:SQLSERVERS_MEDIA_FOLDER = "D:\SQL-SETUP\Media"
$ENV:SQLSERVERS_SETUP_FOLDER = "C:\SQL-SETUP\Installer"
Setup-SqlServers "2016 Developer: DEVELOPER2016" `
"Features=SQLENGINE,FullText" `
"Collation=SQL_Latin1_General_CP1_CI_AS" `
"Startup=Automatic" `
"InstallTo=D:\SQL" `
"Password=Zuper`$tr0ng" 🌟 List Installed SQL Server Intances
Find-Local-SqlServers |
Format-Table -AutoSize |
Out-String -Width 1234 |
Out-HostInstance InstallerVersion Service
-------- ---------------- -------
(local) 16.0.1000.6 MSSQLSERVER
(local)\ADV_2005_X86 9.00.5000.00 MSSQL$ADV_2005_X86
(local)\ADV_2008R2_X64 10.50.6000.34 MSSQL$ADV_2008R2_X64
(local)\ADV_2008_X86 10.0.1600.22 MSSQL$ADV_2008_X86
(local)\DEV2022UTF8 16.0.1000.6 MSSQL$DEV2022UTF8
(local)\DEV_2008R2_X64 10.50.6000.34 MSSQL$DEV_2008R2_X64
(local)\DEV_2008_X64 10.0.6000.29 MSSQL$DEV_2008_X64
(local)\DEV_2012_X64 11.0.7001.0 MSSQL$DEV_2012_X64
(local)\DEV_2014_X64 12.0.6024.0 MSSQL$DEV_2014_X64
(local)\DEV_2016 13.0.6441.1 MSSQL$DEV_2016
(local)\DEV_2017 14.0.1000.169 MSSQL$DEV_2017
(local)\DEV_2019 15.0.2000.5 MSSQL$DEV_2019
🌟 List Installed SQL Server Services, wait up to 30 seconds for each SQL Server health check to pass, and populate Version column
Find-Local-SqlServers |
Populate-Local-SqlServer-Version -Timeout 30 |
Format-Table -AutoSize |
Out-String -Width 1234 |
Out-HostInstance InstallerVersion Service Version
-------- ---------------- ------- -------
(local) 16.0.1000.6 MSSQLSERVER 16.0.4145.4 Developer Edition (64-bit) RTM CU15
(local)\ADV_2005_X86 9.00.5000.00 MSSQL$ADV_2005_X86 9.00.5000.00 Express Edition with Advanced SP4
(local)\ADV_2008R2_X64 10.50.6000.34 MSSQL$ADV_2008R2_X64 10.50.6000.34 Express Edition with Advanced SP3
(local)\ADV_2008_X86 10.0.1600.22 MSSQL$ADV_2008_X86 10.0.6000.29 Express Edition with Advanced SP4
(local)\DEV2022UTF8 16.0.1000.6 MSSQL$DEV2022UTF8 16.0.4145.4 Developer Edition (64-bit) RTM CU15
(local)\DEV_2008R2_X64 10.50.6000.34 MSSQL$DEV_2008R2_X64 10.50.6000.34 Developer Edition (64-bit) SP3
(local)\DEV_2008_X64 10.0.6000.29 MSSQL$DEV_2008_X64 10.0.6000.29 Developer Edition (64-bit) SP4
(local)\DEV_2012_X64 11.0.7001.0 MSSQL$DEV_2012_X64 11.0.7001.0 Developer Edition (64-bit) SP4
(local)\DEV_2014_X64 12.0.6024.0 MSSQL$DEV_2014_X64 12.0.6024.0 Developer Edition (64-bit) SP3
(local)\DEV_2016 13.0.6441.1 MSSQL$DEV_2016 13.0.6441.1 Developer Edition (64-bit) SP3
(local)\DEV_2017 14.0.1000.169 MSSQL$DEV_2017 14.0.3456.2 Developer Edition (64-bit) RTM CU31
(local)\DEV_2019 15.0.2000.5 MSSQL$DEV_2019 15.0.4385.2 Developer Edition (64-bit) RTM CU28
🌟 SQL Server 2025 and LocalDB 2025 are also supported
@(Find-Local-SqlServers) + @(Find-LocalDb-SqlServers) |
Populate-Local-SqlServer-Version |
Select-Object -Property Instance, Version |
Format-Table -AutoSize |
Out-String -Width 1234 |
Out-HostInstance Version
-------- -------
(local) 17.0.925.4 Enterprise Developer Edition (64-bit) RC1
(local)\EVAL2025 17.0.925.4 Enterprise Evaluation Edition (64-bit) RC1
(LocalDB)\MSSQLLocalDB 17.0.925.4 LocalDB Express Edition (64-bit) RC1
🌟 List Installed SQL Server Services
Find-Local-SqlServers |
% { $_.Service } |
% { Get-Service -Name $_ } |
ft -AutoSize |
Out-HostStatus Name DisplayName
------ ---- -----------
Running MSSQL$ADV_2005_X86 SQL Server (ADV_2005_X86)
Running MSSQL$ADV_2008_X86 SQL Server (ADV_2008_X86)
Running MSSQL$ADV_2008R2_X64 SQL Server (ADV_2008R2_X64)
Running MSSQL$DEV_2008_X64 SQL Server (DEV_2008_X64)
Running MSSQL$DEV_2008R2_X64 SQL Server (DEV_2008R2_X64)
Running MSSQL$DEV_2012_X64 SQL Server (DEV_2012_X64)
Running MSSQL$DEV_2014_X64 SQL Server (DEV_2014_X64)
Running MSSQL$DEV_2016 SQL Server (DEV_2016)
Running MSSQL$DEV_2017 SQL Server (DEV_2017)
Running MSSQL$DEV_2019 SQL Server (DEV_2019)
Running MSSQL$DEV2022UTF8 SQL Server (DEV2022UTF8)
Running MSSQLSERVER SQL Server (MSSQLSERVER)
🌟 Wait up to 30 seconds for the SQL Server health check to pass, and return its version
Query-SqlServer-Version -Title "Default MS SQL SERVER" -Instance "(local)" -Timeout 30🌟 Wait up to 30 seconds for the SQL Server health check to pass, and return its version (on Linux)
Query-SqlServer-Version -Title "SQL Server" `
-ConnectionString "Data Source=localhost,1433;User ID=sa;Password=passw0rd!;Encrypt=False;" `
-Timeout 30🌟 Start SQL Server Instances that are currently stopped
Find-Local-SqlServers |
% { $_.Service } |
% { Get-Service -Name $_ } |
? { $_.Status -ne "Running" } |
% { Write-Host "Starting $($_.Name)"; Start-Service "$($_.Name)" }🌟 Stop SQL Server Instances that are currently running
Find-Local-SqlServers |
% { $_.Service } |
% { Get-Service -Name $_ } |
? { $_.Status -ne "Stopped" } |
% { Write-Host "Stopping $($_.Name)"; Stop-Service "$($_.Name)" -Force }🌟 Install all the versions of SQL Server LocalDB:
Setup-SqlServers "
2022 LocalDB,
2019 LocalDB,
2017 LocalDB,
2016 LocalDB,
2014 LocalDB,
2012 LocalDB
"🌟 List Installed SQL Server LocalDB Versions:
Find-LocalDb-Versions |
ft -Property ShortVersion, InstallerVersion -AutoSize |
Out-String -Width 1234 |
Out-HostShortVersion InstallerVersion
------------ ----------------
16.0 16.0.4175.1
15.0 15.0.4420.2
14.0 14.0.3456.2
13.0 13.3.6441.1
12.0 12.3.6024.0
11.0 11.4.7001.0
🌟 List SQL Server LocalDB Instances and their version:
Find-LocalDb-SqlServers | Populate-Local-SqlServer-Version |
ft -AutoSize |
Out-String -Width 1234 |
Out-HostInstance Version
-------- -------
(LocalDB)\LocalDB-v11.0 11.0.7001.0 LocalDB Express Edition (64-bit) SP4
(LocalDB)\LocalDB-v12.0 12.0.6024.0 LocalDB Express Edition (64-bit) SP3
(LocalDB)\LocalDB-v13.0 13.0.6300.2 LocalDB Express Edition (64-bit) SP3
(LocalDB)\LocalDB-v14.0 14.0.3456.2 LocalDB Express Edition (64-bit) RTM CU31
(LocalDB)\LocalDB-v15.0 15.0.4420.2 LocalDB Express Edition (64-bit) RTM CU31
(LocalDB)\LocalDB-v16.0 16.0.4175.1 LocalDB Express Edition (64-bit) RTM CU17
(LocalDB)\MSSQLLocalDB 16.0.4175.1 LocalDB Express Edition (64-bit) RTM CU17
(LocalDB)\v11.0 11.0.7001.0 LocalDB Express Edition (64-bit) SP4
🌟 Create SQL Server LocalDB Instance per version using pattern
LocalDB-v{Version}:
foreach($localDb in Find-LocalDb-Versions) {
$instance = "LocalDB-v$($localDb.ShortVersion)"
Write-Host "Creating Instance $instance version $($localDb.ShortVersion)"
$isCreated = Create-LocalDB-Instance `
-InstanceName $instance `
-OptionalVersion $localDb.ShortVersion
}🌟 Uninstall any pre-installed LocalDB version:
Uninstall-LocalDB-List "*"🌟 Uninstall LocalDB 2012 and 2014 if they are installed:
Uninstall-LocalDB-List "2012", "2014"