前几天研究了了一下修改数据库名称的方式后,今天突然冒出一个问题,MS SQL的命名实例是否也可以修改呢?例如下图,我在本机上安装了一个命名实例GSP,如果我想将其改为GSPS,能行吗? 如果可以,那么该怎么做呢?
该如何下手呢,真的不知道怎么做,毕竟以前都没有做过修改命令实例(当然修改计算机名称是另外一回事),先从网上搜索资料吧,结果,搜索到一堆不相关的资料,其实都不是真正的修改命名实例名称,只是修改计算机名称。不过最后搜索到一点有用的信息http://www.itpub.net/thread-1047040-1-1.html, 不过呢,我按照其操作去实现的时候,发现根本行不通。
修改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;
- RECONFIGURE WITH OVERRIDE;
- GO
因为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
- GO
执行完脚本后,我们来看看查询结果
SELECT @@SERVERNAME ,SERVERPROPERTY('servername')
SELECT * FROM Sys.SysServers
我们重启一下服务.OK,问题已经解决
结论:折腾了大半下午,终于弄清了一个事实,数据库命名实例是不能修改的,不能将GSP改为其它名称,除非你重装MSSMS。不像ORACLE数据库的实例名是可以修改的。但是呢,可以修改计算机名称。
时间: 2024-09-19 20:32:45