SQL Server 2014下@@SERVERNAME返回NULL值浅析
2020-11-20 11:30 潇湘隐者 阅读(763) 评论(0) 编辑 收藏 举报开发同事反馈在一台开发服务器(SQL Server 2014 Developer Edition (64-bit) 12.0.6024.0)上,配置函数@@SERVERNAME返回NULL值。如下截图所示
其实出现这种问题,配置函数@@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
扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.