Como cambiar el Nombre a una Instancia


En casos donde nos toca la tarea de reemplazar físicamente un server por otro, y obviamente necesitamos que todo quede funcionando tal cual funcionaba en el equipo a reemplazar, la forma mas directa de renombrar la instancia, en caso de que la misma este nombrar como el equipo físico es mediante la siguiente instruccion:

 

USE Master
GO

sp_dropserver 'oldservername'
GO
sp_addserver 'newservername' , local

Cambiar el Owner de los Job en una Instancia


Algunas veces, desarrolladores o malos administradores de BBDD, crean Jobs con usuarios propietarios incorrectos, lo que conlleva a que cuando queremos depurar usuarios que no corresponden, nos encontramos imposibilitados de hacerlo ya que nos da un error diciendo que existen Jobs asociados al usuario que queremos eliminar.

Para corregir esto, y asociar todos los usuarios al System Administrator, debemos ejecutar el siguiente Script.

 
use msdb
go

DECLARE @db_job_count INT
SELECT @db_job_count = count(distinct(suser_sname(owner_sid))) from msdb..sysjobs where suser_sname(owner_sid) <> 'sa'
IF @db_job_count > '0'
    BEGIN
        DECLARE @change_job_id VARCHAR(50)
        DECLARE @change_job_name VARCHAR(100)
        DECLARE job_id_cursor CURSOR FOR
        SELECT job_id, name    FROM msdb..sysjobs WHERE suser_sname(owner_sid) <> 'sa'
        OPEN job_id_cursor
        FETCH NEXT FROM job_id_cursor
        INTO @change_job_id, @change_job_name
        WHILE @@FETCH_STATUS = 0
            BEGIN
                DECLARE @sql_statement NVARCHAR(255)
                EXEC msdb..sp_update_job @job_id = @change_job_id, @owner_login_name ='sa'
                PRINT 'Job ' + @change_job_name + ' has been updated to sa ownership'
        FETCH NEXT FROM job_id_cursor INTO @change_job_id, @change_job_name
END
CLOSE job_id_cursor
DEALLOCATE job_id_cursor
END