无法使用全名连接到默认实例

unable to connect to default instance using it's full name

我正在开发一个应用程序,需要从用户那里获取服务器名称或地址以及数据库名称,并基于此构建文件夹结构。问题是,为了让所有不同的方法都使用相同的文件夹,需要获取实例的路径(本地主机、IP 地址等),我 运行 以下查询:

select cast(SERVERPROPERTY('MachineName')as varchar)+'\'+@@servicename

在目标服务器上并以此为基础设置我的文件夹结构,并以这种格式保存用户提供的连接(不管我是否获得 ip 或服务器名称,所有的连接字符串都是一个).
我的问题是当实例是目标机器上的默认实例时,我似乎无法使用 MACHINE_NAME\MSSQLSERVER 进行连接。我只能使用没有实例名称的机器登录。所以我需要找到一种方法来使用其全名(首选)连接到实例,或者找到一种方法来确定目标实例是否是默认实例。
任何帮助将不胜感激。

'MSSQLSERVER' 为默认实例保留,因此您可以

SELECT CAST(SERVERPROPERTY('MachineName')AS VARCHAR)+ CASE WHEN CHARINDEX('MSSQLSERVER', @@SERVICENAME, 1) >0 THEN '' ELSE '\'+@@SERVICENAME END