我试图确定我已经安装的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
推荐文章
- 确定记录是否存在的最快方法
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 外键约束可能导致循环或多条级联路径?
- 如何选择每一行的列值不是独特的
- nvarchar(max)非文本
- 在SQL Server 2008 R2中重命名数据库时出错
- 将数据复制到另一个表中
- 如何在SQL中选择表的最后一条记录?
- 修改列,添加默认约束
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?