2011-05-10 102 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')