日期:2014-05-17  浏览次数:20608 次

怎么修改SERVERPROPERTY('SERVERNAME')的值。
怎么修改SERVERPROPERTY('SERVERNAME')的结果为机器名。

SELECT @@SERVERNAME,SERVERPROPERTY('SERVERNAME') --这个语句的结果如下

机器名,机器名\SQL2005


------解决方案--------------------
SQL code
 
--?
SELECT substring(@@SERVERNAME,1,charindex('\',@@SERVERNAME)-1)

------解决方案--------------------
友情提示,如果是因为修改了计算机名字而无法通过实例名登录SQL Server的话,可以尝试一下操作或者用安装文件修复(不是100%有用),如果不是因为这个原因,不要修改SERVERPROPERTY('SERVERNAME')的值,否则会导致通过实例名无法连接数据库。
SQL code
 
--修改计算机名后无法运行数据库相关服务的处理方法
--使用下面的代码重新添加当前SQL Server实例的信息,处理完成后,应该重新启动MSSQLSERVER服务使修改生效。
DECLARE @srvname sysname
SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname)
IF NOT EXISTS(SELECT * FROM master.dbo.sysservers WHERE srvname=@srvname)
  EXEC sp_addserver @server = @srvname , @local = 'LOCAL'


--执行下面的代码,将@@SERVERNAME的值修改为与SERVERPROPERTY('ServerName')一样即可。修改完成后,需要重新启动MSSQLSERVER服务使修改生效。
IF SERVERPROPERTY('ServerName') <>@@SERVERNAME
BEGIN
  DECLARE @srvname sysname
  SET @srvname=@@SERVERNAME
  EXEC sp_dropserver @server=@srvname
  SET @srvname=CAST(SERVERPROPERTY('ServerName') as sysname)
  EXEC sp_addserver @server = @srvname , @local = 'LOCAL'
END

------解决方案--------------------
探讨

那要怎么办,重新安装吗?

------解决方案--------------------
探讨
那要怎么办,重新安装吗?

------解决方案--------------------
SQLServer不支持直接重命名实例名,为此,可以使用下面的方法:
a)卸载并重新安装;
b)更改计算机名,和更改实例名中计算机名
比如我的是:
SQL code
SELECT @@SERVERNAME,SERVERPROPERTY('SERVERNAME')

输出:huang-pc huang-pc

使用以下语句修改:
SQL code
sp_dropserver 'HUANG-PC' 
GO
sp_addserver 'Huang',LOCAL
GO

输出:huang huang-pc
如果要修改命名实例:
SQL code
sp_dropserver '[HUANG-PC]\实例名' 
GO
sp_addserver 'Huang\实例名',LOCAL
GO

------解决方案--------------------
如楼上所述先drop 在add

SQL code
 
--查询你的机器名
SELECT @@SERVERNAME,SERVERPROPERTY('SERVERNAME')
--drop后add
sp_dropserver '[2012-PC]\实例名'
GO
sp_addserver '2012\实例名',LOCAL
GO