前几天研究了了一下修改数据库名称的方式后,今天突然冒出一个问题,ms sql的命名实例是否也可以修改呢?例如下图,我在本机上安装了一个命名实例gsp,如果我想将其改为gsps,能行吗? 如果可以,那么该怎么做呢?
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUDZ4YTZhZWZ2UjYmFDMjljY3QGNhZjM1IzN3gTM2YGZtUjM1UDOxgjMvwFNwMTMwIzLcJDN1MzNvw1ZvxmYvwVbvNmLn9GbiRXauNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
修改sysservers脚本
exec sp_configure'allow updates', 1;
reconfigure with override;
go
update master..sysservers set srvname='a8bec8491730444\gsps', dataaccess='a8bec8491730444\gsps',
srvnetname='a8bec8491730444\gsps'
where srvname ='a8bec8491730444\gsps';
exec sp_configure'allow updates', 0;
因为sql server 2005 和 sql server 2008 不再支持直接对系统表进行修改,上面语句会报如下错误。
消息 259,级别 16,状态 1,第 2 行
不允许对系统目录进行即席更新。
那么接下来我们来看看修改计算机名称,会给数据库带来什么影响,我把计算机名称从a8bec8491730444改为kerry,然后重启机器和服务,执行下面脚本
code snippet
use master;
go
if serverproperty('servername') <> @@servername
begin
declare @server sysname;
set @server =@@servername;
exec sp_dropserver@server = @server;
set @server = cast(serverproperty('servername') as sysname);
exec sp_addserver@server=@server, @local='local';
end
执行完脚本后,我们来看看查询结果
我们重启一下服务.ok,问题已经解决
结论:折腾了大半下午,终于弄清了一个事实,数据库命名实例是不能修改的,不能将gsp改为其它名称,除非你重装mssms。不像oracle数据库的实例名是可以修改的。但是呢,可以修改计算机名称。