USE msdb--获取当前SQL Server的实例名
DECLARE @servername sysname
SET @servername=CAST(SERVERPROPERTY('servername') as nvarchar(128))--检查是否存在作业的源服务器与当前实例名不同名的作业,如果存在,则更新
IF EXISTS(SELECT * FROM sysjobs WHERE originating_server<>@servername)
BEGIN
--因为要修改系统表,所以设置允许更新系统表
EXEC sp_configure 'allow updates',1
RECONFIGURE WITH OVERRIDE
--将作业的来源服务器设置为当前实例
UPDATE sysjobs SET originating_server=@servername
WHERE originating_server<>@servername --关闭系统表更新功能
EXEC sp_configure 'allow updates',0
RECONFIGURE WITH OVERRIDE
END
DECLARE @servername sysname
SET @servername=CAST(SERVERPROPERTY('servername') as nvarchar(128))--检查是否存在作业的源服务器与当前实例名不同名的作业,如果存在,则更新
IF EXISTS(SELECT * FROM sysjobs WHERE originating_server<>@servername)
BEGIN
--因为要修改系统表,所以设置允许更新系统表
EXEC sp_configure 'allow updates',1
RECONFIGURE WITH OVERRIDE
--将作业的来源服务器设置为当前实例
UPDATE sysjobs SET originating_server=@servername
WHERE originating_server<>@servername --关闭系统表更新功能
EXEC sp_configure 'allow updates',0
RECONFIGURE WITH OVERRIDE
END
(1)修正 @@servername请使用以下的程式码,直接执行修正即可,无须填写任何资料。执行完成后,系统会自动关机,您仅需重新启动 SQL Server 即可。
DECLARE @sn sysname,@sno sysname;
SELECT @sn=cast(serverproperty('servername') as sysname),@sno=@@SERVERNAME;
IF @sno IS NULL
BEGIN
EXEC sp_addserver @server=@sn,@local = 'local';
SELECT N'Finish the server name to revise, and has already stopped serving, please restart the server';
SELECT N'完成伺服器名稱修改,並已停止服務,請重新啟動伺服器';
SHUTDOWN WITH NOWAIT;
RETURN;
END
ELSE IF (@sn=@sno)
BEGIN
SELECT N'Do not need to revise the server name';
SELECT N'無須修正伺服器名稱';
RETURN;
END
ELSE
BEGIN
EXEC sp_dropserver @sno;
EXEC sp_addserver @server=@sn,@local = 'local';
SELECT N'Finish the server name to revise, and has already stopped serving, please restart the server';
SELECT N'完成伺服器名稱修改,並已停止服務,請重新啟動伺服器';
SHUTDOWN WITH NOWAIT;
END
(2)修正本机伺服器的登入帐号若是原本就有允许本机的 Administrator可以管理 SQL Server 时(例如:ServerName\Administrator),请先将此帐号删除后,再度重新加入到 SysAdmin 角色内。虽然预设 BUILTIN\Administrators 管理群组的成员可以自动具备登入与管理 SQL Server 的权限,但经过测试,在 Replication 等某些作业上,仍然会有问题。 (3)修正 SQL Server 安装程式为不同的 SQL Server 服务所建立使用者群组SQL Server 安装程式会为不同的 SQL Server 服务建立使用者群组,并依适当情况将服务帐户加入这些使用者群组中。这些群组不仅可简化授与执行 SQL Server 服务与其他可执行档所需权限的过程,也有助于保护 SQL Server 档案。例如:SQL Server 服务部分:
预设执行个体:SQLServer2005MSSQLUser$ComputerName$MSSQLSERVER
具名执行个体:SQLServer2005MSSQLUser$ComputerName$InstanceName
...建议删除这些群组,重新建立群组与指派权限。
文章出处:http://www.diybl.com/course/7_databases/sql/sqlServer/200863/120800.html
sp_dropserver 'old server name'
go
sp_addserver 'new server name', local
go重启sql server这样select @@servername就会显示正确的名字另外如果msdb里面的主机名是old server name的话,你可以打开里面的sysjobs表,直接手动修改里面的server名字...