我们正在更换SQL Server的过程中,已决定重命名服务器本身要比更改其他所有内容指向新名称要容易得多。我们发现了有关更改SQL Server实例名称以匹配计算机名称的说明,如下所示:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
尽管SQL Enterprise Manager似乎不太喜欢它们。我必须将其更改为以下内容才能使其协同工作:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
不错,但是我希望事情更加自动化。由于@@ ServerName返回实例的名称,因此我弄清楚了如何自动执行第一行:
sp_dropserver @@ServerName; GO
我还了解到SERVERPROPERTY('ServerName')应该返回计算机名称,因此我想我可以使用它来自动化第二部分,但这没有用:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
我尝试设置一个变量,无论如何我都需要这样做以更新SQL Agent作业,但这也不起作用:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
'sp_addserver'附近的语法不正确。
我非常希望不必将新服务器名称硬编码到脚本中,以使其更易于重用。有人有想法吗?
1
您可以在sp_addserver之前添加EXEC,看看是否有帮助?
—
桑卡尔·雷迪
这使它起作用。:)
—
Scott