我正在开发一个应用程序,需要从用户获取服务器名称或地址和数据库名称,并基于此构建文件夹结构。问题是,为了获得所有不同方式的相同文件夹,需要获取实例的路径(localhost,ip地址等),我运行以下查询:
select cast(SERVERPROPERTY('MachineName')as varchar)+'\'+@@servicename
在目标服务器上并根据它设置我的文件夹结构,并以该格式保存用户提供的连接(如果我有ip或服务器名称,则无关紧要,所有连接字符串都有一个)。
我的问题是,当实例是目标机器上的默认实例时,我似乎无法使用MACHINE_NAME\MSSQLSERVER
进行连接。我只能使用没有实例名称的机器登录。因此,我需要找到一种方法来使用其全名(首选)连接到实例,或者找到一种方法来确定目标实例是否是默认实例。
任何帮助都将非常感激。
答案 0 :(得分:1)
' MSSQLSERVER'保留用于默认实例,因此您可以
SELECT CAST(SERVERPROPERTY('MachineName')AS VARCHAR)+ CASE WHEN CHARINDEX('MSSQLSERVER', @@SERVICENAME, 1) >0 THEN '' ELSE '\'+@@SERVICENAME END