所有 SQL 服务器实例都存储在 Windows Registry. 中您可以使用 Windows 工具 C:\Windows\System32\Regedt32.exe 查询注册表并在那里浏览/搜索,您可以使用诸如 C# (see Example 1 there) 甚至 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 以访问默认实例
- 或-
- 使用Sql Server 配置管理器 -> SQL Native Client XX.Y 配置 -> 别名 来定义别名。例如:
将为本地 SQL 服务器设置别名 Inst1。指定 (local)\Inst1,1433 以访问它。当然,也可以使用ServerName代替(local)。
重要提示:设置别名后,需要重启相关实例的SQL服务或者重启你的PC,否则将无法立即访问。如果您使用的端口不是默认端口 1433,则可能需要打开本地防火墙才能使其正常工作。
注意:如果开始菜单中没有它,可以在 C:\Windows\System32 中找到 SQL Server 配置管理器。查找 SqlServerManagerXX.msc(其中 XX 是 SQL 版本,例如 XX=11 或 XX=13)。