Esto es algo que realmente que uso poco, pero ciertamente me ha sido bastante util en ambientes de pruebas cuando el nombre de maquina difiere del nombre de instancia y por alguna razon en particular ocupo que sean el mismo.
Antes de renombrar tenemos que descartar lo siguiente:
- No usamos replicacion
- No existen logins de acceso remoto
El codigo de la siguiente seccion nos permitira validar estas dos condiciones:
DECLARE @txt VARCHAR(512) SET @txt = '' IF EXISTS( SELECT * FROM sys.databases where is_published = 1 or is_subscribed =1 or is_distributor = 1 ) BEGIN SET @txt = 'No se podra renombrar por el momento, Existe Replicacion' END IF EXISTS( select * from sys.remote_logins a INNER JOIN sys.sysservers b on b.srvid = a.server_id ) BEGIN IF(@txt = '') BEGIN SET @txt = 'No se podra renombrar por el momento, existen [Remote Logins]' END ELSE BEGIN SET @txt = ' No se podra renombrar por el momento, existen [Remote Logins]' END END IF @txt = '' BEGIN SET @txt = 'No existen problemas para ejecutar el sp_dropserver' END Print @txt
A continuacion lo que hay que hacer es buscar el nombre actual de la maquina. Lo que siempre hago es buscarlo abriendo una ventana del command prompt, y utilizando el comando hostname.
Solo quedaria correr el sp_dropserver y el sp_addserver
<span data-mce-type="bookmark" id="mce_SELREST_start" data-mce-style="overflow:hidden;line-height:0" style="overflow:hidden;line-height:0" ></span> DECLARE @oldname sysname DECLARE @newname sysname SET @oldname = 'server' SET @newname = 'newserver' EXEC sp_dropserver @server = @oldname --nombre de la instancia, tipo sysname, no acepta espacios --@droplogins = '' --Permite Remover los Remote Logins de la insntancia EXEC sp_addserver @server = @newname --nombre de la instancia, tipo sysname, no acepta espacios ,@local = local --indica si la insntacia es local, varchar(1) --Cuando se asigna LOCAL le indica al SQL que el nombre --de instacia es lo que le enviamos a @server --,@duplicate_ok = --Permite nombres de instancia duplicados --Solo tiene to valores posibles duplicate_OK o NULL --Nunca lo he usado GO
Nota: en caso de renombrar una instancia nombrada, cambiamos el los valores
@oldname y @newname incluyendo el nombre de la maquina y el de la instancia de la siguiente manera:
SET @oldname = 'server\instance' SET @newname = 'server\newinstance'
El nombre del servidor tambien puede cambiarse
Fuente:
MS Drop Server
MS addServer