对于非LocalDb SQL Server,我可以使用SELECT SERVERPROPERTY('ServerName')
来获取服务器的名称以及我正在运行的实例。但是,对于LocalDb服务器,我获得SERVERNAME\LOCALDB#SOMEHASH
。我如何获得本地实例名称?如何确定SQL脚本中的LocalDb实例名称?
SOLUTION:
用于获取例如,在双方的LocalDB和 “正常” 的SQL Server实例的工作解决办法:
DECLARE @serverName NVARCHAR(151)
IF SERVERPROPERTY('IsLocalDb') = 1
SELECT @serverName = 'np:\\.\pipe\' + CONVERT(NVARCHAR(128), SERVERPROPERTY('InstanceName')) + '\tsql\query'
ELSE
SELECT @serverName = CONVERT(NVARCHAR(128), SERVERPROPERTY('ServerName'))
,我应该在原来的问题已经提到的一些背景资料:我们为我们的应用程序提供了配置数据库除此之外,它存储连接字符串。对于开发人员机器和集成测试,我们希望能够使用脚本生成数据库,并使连接字符串引用本地实例。因此,我需要一个工作连接字符串(不是LOCALDB#SOMEHASH
)。由于数据库服务器版本中存在一些扩展,我需要能够处理这两种情况的东西。
的连接字符串建立与LocalDB实例的连接为什么SERVERNAME \ LOCALDB#SOMEHASH不可接受? – 2013-02-28 16:20:56
@RaySaltrelli:因为它不能用于从我的测试中的代码连接到localdb – carlpett 2013-02-28 16:23:05
选择@@ Servername是不是你所需要的? – granadaCoder 2013-02-28 16:34:36