對於非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