前幾天研究了了一下修改數據庫名稱的方式后,今天突然冒出一個問題,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數據庫的實例名是可以修改的。但是呢,可以修改計算機名稱。

