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:
✔ 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:
"2022 Developer Updated: MSSQLSERVER" `
Setup-SqlServers "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
"@;
$sqlServers `
Setup-SqlServers "/SQLUSERDBDIR=D:\SQL\{InstanceName}-DATA" `
"/SQLUSERDBLOGDIR=D:\SQL\{InstanceName}-LOGS"
🌟 Install SQL Server 2019 Developer Edition RTM as DEVELOPER2019 instance:
"2019 Developer: DEVELOPER2019" Setup-SqlServers
🌟 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"
"2016 Developer: DEVELOPER2016" `
Setup-SqlServers "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-Host
Instance 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 -Timeout 30 |
Populate-Local-SqlServer-Version Format-Table -AutoSize |
Out-String -Width 1234 |
Out-Host
Instance 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
🌟 List Installed SQL Server Services
|
Find-Local-SqlServers % { $_.Service } |
% { Get-Service -Name $_ } |
ft -AutoSize |
Out-Host
Status 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
-Title "Default MS SQL SERVER" -Instance "(local)" -Timeout 30 Query-SqlServer-Version
🌟 Wait up to 30 seconds for the SQL Server health check to pass, and return its version (on Linux)
-Title "SQL Server" `
Query-SqlServer-Version -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-Host
ShortVersion 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:
| Populate-Local-SqlServer-Version |
Find-LocalDb-SqlServers ft -AutoSize |
Out-String -Width 1234 |
Out-Host
Instance 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:
"2012", "2014" Uninstall-LocalDB-List