我正在安装一些软件,我需要告诉它使用 SQL Server 的默认实例,但是 Installshield GUI 坚持要求我输入命名实例的信息。
目标 SQL Server 版本为 2008R2
我希望有一个干净的黑客可以使用,例如“。”或“默认”,但我还没猜到。 我也尝试过 MSSQLSERVER,但也不起作用。
运行此查询:
SELECT @@SERVERNAME + '\' + @@SERVICENAME AS InstanceName
并将结果用作您的实例名称。
所有 SQL Server 实例都存储在 Windows 注册表中。 您可以使用 Windows 工具
C:\Windows\System32\Regedt32.exe
查询注册表并在那里浏览/搜索,您可以使用C# 等语言来完成此操作(参见 示例 1) 那里) 甚至 T-SQL(也称为 Transact-SQL)。
在这个答案中,我将向您展示如何使用 T-SQL 来做到这一点。使用我在here找到的这个脚本来确定 ServerName、InstanceName、HostName 和 PortNumber:
set nocount on
Declare @key Varchar(100), @PortNumber varchar(20)
if charindex('\',CONVERT(char(20), SERVERPROPERTY('servername')),0) <>0 begin
set @key = 'SOFTWARE\MICROSOFT\Microsoft SQL Server\'+@@servicename+'\MSSQLServer\Supersocketnetlib\TCP'
end else begin
set @key = 'SOFTWARE\MICROSOFT\MSSQLServer\MSSQLServer\Supersocketnetlib\TCP'
end
EXEC master..xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = @key,
@value_name = 'Tcpport', @value = @PortNumber OUTPUT
SELECT CONVERT(char(20), SERVERPROPERTY('servername')) ServerName,
CONVERT(char(20), SERVERPROPERTY('InstanceName')) InstanceName,
CONVERT(char(20), SERVERPROPERTY('MachineName')) as HostName,
convert(varchar(10), @PortNumber) PortNumber
如果
InstanceName
是 null
,则表示没有配置命名实例,那么您有两个非独占选项:
ServerName
以访问默认实例 Inst1
。指定 (local)\Inst1,1433
即可访问它。当然,除了 (local)
,您还可以使用 ServerName。注意: 如果开始菜单中没有它,则可以在 C:\Windows\System32 中找到 SQL Server 配置管理器。查找 SqlServerManagerXX.msc(其中 XX 是 SQL 版本,例如 XX=11 或 XX=13)。
如果您配置了默认实例,只需使用服务器主机名作为实例
安装向导将采用 MSSQLSERVER,这意味着“默认”实例。
请参阅 MSDN 页面中的步骤 12