2011-05-10 39 views
9

我正在使用SQL Server Express 2008 R2,並且我想將實例名稱從「機器名稱\ SQLEXPRESS2008R2」更改爲「機器名稱」。我跑了:sp_dropserver和sp_addserver不起作用

sp_dropserver 'old_name' 

go 

sp_addserver 'new_name', 'local' 

go 

然後重新啓動SQL服務。現在當我看看

Select @@SERVERNAME --this is correct 

但這不正確?

Select serverproperty('ServerName') --This still shows old name 

所以,當我嘗試通過SSMS連接到我的情況下我仍然有使用新的舊的實例名稱isntead上我只是適用於連接?我究竟做錯了什麼?爲什麼這個新名字沒有被使用?

感謝,

小號

+0

我沒想到你可以將命名實例更改爲默認實例... – 2011-05-10 21:42:18

+0

哦,是這個問題嗎?我以爲你可以這樣做......這可能是問題所在。 – scarpacci 2011-05-10 22:01:07

+0

之前你有沒有讀過[this](http://msdn.microsoft.com/en-us/library/ms143799.aspx)? – 2011-05-10 22:04:28

回答

6

這是從書本在線:

儘管@@ SERVERNAME函數和SERVERPROPERTY函數的SERVERNAME屬性可能返回相似的格式字符串,該信息可以是不同的。 SERVERNAME屬性自動報告計算機的網絡名稱中的更改。

相反,@@ SERVERNAME不報告這種更改。 @@ SERVERNAME使用sp_addserver或sp_dropserver存儲過程報告對本地服務器名稱所做的更改。

而第一條評論是正確的。您必須重新安裝SQL才能將其更改爲默認實例。

每BOL如果您更改計算機名與你必須使用如下命名實例:

sp_dropserver <'old_name\instancename'> 
GO 
sp_addserver <'new_name\instancename'>, local 
GO 
+0

不知道[sp_setnetname](http://msdn.microsoft.com/cs-cz/library/ms190318%28SQL.100%29.aspx)有幫助嗎? – 2011-05-10 22:34:55

+0

那麼我應該能夠使用新的instnace名稱登錄嗎?因此,如果我將機器從Test1 \ SQLEXPRESS更改爲Test2 \ SQLEXPRESS並重新啓動服務,那麼現在可以使用Test2 \ SQLEXPRESS登錄實例了嗎?如果是這樣,似乎沒有工作? 謝謝 – scarpacci 2011-05-10 22:34:55

+0

我不認爲更改機器名稱後重新啓動服務就足夠了。我認爲你必須重新啓動。此外,SQL瀏覽器需要知道更改以便將流量引導到適當的實例。 – RThomas 2011-05-10 22:44:02

2

是,重新啓動SQL服務器的工作。現在這兩個名字都顯示正確。

SELECT @@SERVERNAME 

SELECT serverproperty('ServerName')