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


当前回答

如果你在SSMS内,你可能会发现它更容易使用:

SELECT @@Version

其他回答

你可以查询这个注册表值直接得到SQL版本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\Tools\ClientSetup\CurrentVersion

或者你可以查询你的实例名,然后使用sqlcmd和你想要的实例名:

要查看实例名:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names

然后执行这个:

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

如果您使用c++,您可以使用这段代码来获取注册表信息。

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

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

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

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

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

我知道这个帖子有点老了,但在我找到我正在寻找的答案之前,我就看到了这个帖子,我想分享一下。如果您正在使用SQLExpress(或localdb),有一种更简单的方法来查找实例名。 在命令行类型中:

> sqllocaldb i

这将列出您在本地安装的实例名。因此,您的完整服务器名称应该在要连接的实例名称前面包含(localdb)\。此外,sqllocaldb允许您创建或删除实例以及配置它们。参见:SqlLocalDB Utility。

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

——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