Запуск SQL Сервер только при запуске SSMS - PullRequest
1 голос
/ 31 марта 2020

Я недавно установил SQL Сервер 2019 и при запуске потребляет 3 ГБ или ОЗУ.

Я просто использую его дома для личного пользования, поэтому отключил его.

Я хотел бы знать, есть ли способ для сценария в PowerShell или CMD, который:

  1. Запускается SQL Server (MSSQLSERVER) при запуске SSMS
  2. Стоп SQL Server (MSSQLSERVER) при закрытии SSMS

Ответы [ 3 ]

0 голосов
/ 31 марта 2020

Как насчет этого скрипта? Он будет ожидать выхода из SSMS, а затем остановит SQL Сервер. Конечно, ваш путь к исполняемому файлу SSMS может отличаться от моего.

net start "SQL Server (MSSQLSERVER)"
START /WAIT "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server Tools 17\Microsoft SQL Server Management Studio 17.lnk"
net stop "SQL Server (MSSQLSERVER)"
0 голосов
/ 30 апреля 2020

Я нашел решение сам:

# Execute this script as Administrator
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

# Start all SQL* Services
Get-Service | where {$_.Name -like "SQL*"} |  Start-Service

# Start SSMS and wait till is closed
Start-Process "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe" -NoNewWindow -Wait

# Stop all SQL* Services
Get-Service | where {$_.Name -like "SQL*"} |  Stop-Service
0 голосов
/ 31 марта 2020

Вы можете создать скрипт, который будет запускать / останавливать сервер (например, пакетный файл или PowerShell), а затем запускать SSMS.exe.

Вы также можете запускать / останавливать SQL механизм сервера в:

Командная строка

net start "SQL Server (MSSQLSERVER)"
net stop "SQL Server (MSSQLSERVER)"

PowerShell

# Get a reference to the ManagedComputer class.
CD SQLSERVER:\SQL\computername
$Wmi = (get-item .).ManagedComputer

$DfltInstance = $Wmi.Services['MSSQLSERVER']

# Display the state of the service.
$DfltInstance

# Start the service.
$DfltInstance.Start();

# Wait until the service has time to start.
# Refresh the cache.  
$DfltInstance.Refresh();

# Display the state of the service.
$DfltInstance

# Stop the service.
$DfltInstance.Stop();

# Wait until the service has time to stop.
# Refresh the cache.
$DfltInstance.Refresh();

# Display the state of the service.
$DfltInstance

Подробнее о документы .

...