我试图确定我已经安装的sql server/sql express的实例(手动或编程),但所有的例子都告诉我运行一个sql查询来确定这假设我已经连接到一个特定的实例。


当前回答

另一个选择是运行SQLSERVER发现报告,进入SQLSERVER安装介质,双击setup.exe

在下一个屏幕中,转到工具并单击如下所示的发现报告

这将向你展示所有的实例以及整个功能..下面是我电脑上的快照

其他回答

如果您有兴趣在脚本中确定这一点,您可以尝试以下方法:

sc \\server_name query | grep MSSQL

注意:grep是gnuwin32工具的一部分

安装的所有实例都应该显示在Microsoft管理控制台的服务管理单元中。如果需要获取实例名,请执行“开始|运行|类型的服务”。查找所有带有“Sql Server(实例名)”的条目。

我知道这是一个老帖子,但我发现了一个很好的解决方案与PoweShell,你可以找到SQL实例安装在本地或远程机器上,包括版本,也可以扩展获得其他属性。

$MachineName = ‘.’ # Default local computer Replace . with server name for a remote computer

$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’, $MachineName)
$regKey= $reg.OpenSubKey("SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL" )
$values = $regkey.GetValueNames()
$values | ForEach-Object {$value = $_ ; $inst = $regKey.GetValue($value); 
              $path = "SOFTWARE\\Microsoft\\Microsoft SQL Server\\"+$inst+"\\MSSQLServer\\"+"CurrentVersion";
              #write-host $path; 
              $version = $reg.OpenSubKey($path).GetValue("CurrentVersion");
                          write-host "Instance" $value;
              write-host  "Version" $version}

命令OSQL -L和sqlmd -L将显示网络上的所有实例。

如果你想要一个服务器上所有实例的列表,并且不喜欢编写脚本或编程,可以这样做:

启动Windows任务管理器 勾选“显示来自所有用户的进程”或相同的复选框 按照“映像名称”对进程进行排序 找到所有sqlsrvr.exe映像

实例应该在“用户名”列中以MSSQL$INSTANCE_NAME的形式列出。

我从认为这个可怜的服务器正在运行63个实例,到意识到它正在运行3个实例(其中一个在CPU负载方面表现得完全像个恶霸……)

——T-SQL查询查找机器上已安装的实例列表

DECLARE @GetInstances TABLE
( Value nvarchar(100),
 InstanceNames nvarchar(100),
 Data nvarchar(100))

Insert into @GetInstances
EXECUTE xp_regread
  @rootkey = 'HKEY_LOCAL_MACHINE',
  @key = 'SOFTWARE\Microsoft\Microsoft SQL Server',
  @value_name = 'InstalledInstances'

Select InstanceNames from @GetInstances