sql-server – 自动重命名SQL Server

前端之家收集整理的这篇文章主要介绍了sql-server – 自动重命名SQL Server前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在更换我们的sql Server,并决定重命名服务器本身比更改其他所有内容以指向新名称要容易得多.我们找到了有关更改sql Server实例名称以匹配计算机名称的说明,如下所示:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER',local

虽然sql企业管理器似乎并不喜欢这些.我不得不将其更改为以下内容以使其协同工作:

sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER','local'; GO

哪个不错,但我希望事情更加自动化.由于@@ ServerName返回实例的名称,我想出了如何自动化第一行:

sp_dropserver @@ServerName; GO

我还了解到SERVERPROPERTY(‘ServerName’)应该返回计算机名称,所以我想我可以用它来自动化第二部分,但这不起作用:

sp_addserver SERVERPROPERTY('ServerName'),'local'; GO

我尝试设置一个变量,无论如何我需要更新sql代理作业,但这也不起作用:

DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv,'local'; GO

‘sp_addserver’附近的语法不正确.

我非常希望不必将新服务器名称硬编码到脚本中,以使其更容易重用.有人有任何想法吗?

解决方法

这是一个做你想做的事情的脚本:
DECLARE @var1 nvarchar(50)
DECLARE @var2 nvarchar(50)
SET @var1 = convert(nvarchar(50),@@SERVERNAME)
SET @var2 = convert(nvarchar(50),SERVERPROPERTY('MachineName'))
EXEC sp_dropserver @var1
EXEC sp_addserver @var2,'local'
GO

积分:http://www.myitforum.com/articles/5/view.asp?id=4983

猜你在找的MsSQL相关文章