SQL Server 2014下@@SERVERNAME返回NULL值淺析


開發同事反饋在一台開發服務器(SQL Server 2014 Developer Edition (64-bit) 12.0.6024.0)上,配置函數@@SERVERNAME返回NULL值。如下截圖所示

 

 

clip_image001

 

其實出現這種問題,配置函數@@SERVERNAME返回NULL,一般是系統視圖sys.servers或sys.sysservers中沒有server_id=0的記錄,檢查這些系統視圖,也確實發現沒有server_id=0的記錄。現在也不清楚誰在上面折騰啥了。

 

SELECT * FROM sys.sysservers WHERE srvid=0;
SELECT * FROM sys.servers WHERE server_id=0;

 

那么就新增一條這個記錄吧。

 

DECLARE @server sysname;
SET @server=CAST(SERVERPROPERTY('servername') AS sysname);
EXEC sp_addserver  @server=@server,@local='LOCAL';

 

   執行上面腳本報錯,具體錯誤如下所示,檢查發現原來有開發同事新增了一個鏈接服務器(LINKE Server),它的名字跟服務器命一致。

 

Msg 15015, Level 16, State 1, Procedure sp_dropserver, Line 63

The server '(null)' does not exist. Use sp_helpserver to show available servers.

Msg 15028, Level 16, State 1, Procedure sp_addserver, Line 95

The server 'xxxx' already exists.

 

刪除了這個不知哪位同事創建的鏈接服務器,然后后面執行上面腳本后,重啟SQL Server服務后問題搞定。

 

USE [master]
GO
EXEC master.dbo.sp_dropserver @server=N'xxx', @droplogins='droplogins'--用具體鏈接服務器替換xxx
GO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM