Recently I was asked for a DOS batch script, that a tech person could run, to give a stand-alone instance of SQL Server the new hostname of its server. This batch file would be run once the server name was changed.
This batch file removed the old hostname from SQL Server, and pulled the new computer name from the operating system’s environmental variables. Then it stops & restarts SQL Server service. The net start & net stop should reflect the current name of the SQL Server service, and may need to also restart the SQL Agent service.
Note: Normally I am asked to do this in PowerShell, but these are older servers that do not have PoweShell installed. Therefore the script had to be done as a DOS batch script. The script assumes local administrator privileges & that sqlcmd is in the executable search path.
DOS Batch Script:
:what SQL thinks the old server hostname is sqlcmd -E -Q "select @@servername as 'Old Hostname';" :SQL drops the old server name sqlcmd -E -Q "exec sp_dropserver @@servername" :Get the New Computer Name SET newcomputername = %COMPUTERNAME% ECHO **** The New Computer Name is : %newcomputername % :SQL adds the new servername sqlcmd -E -v new=%newcomputername % -Q "exec sp_addserver '$(new)','local'" :Stop & Restart SQL Server net stop mssqlserver net start mssqlserver :SQL Server displays new servername sqlcmd -E -Q "select @@servername;" :pause to check for errors before exiting pause
Leave a Comment