miércoles, 1 de octubre de 2014

Procedimiento no oficial para renombrar la bbdd de Reporting Services

SQL Server


Procedimiento no oficial para renombrar las bbdd de Reporting Services


Realizando las pruebas de migración y cambio de nombre de una bbdd de RS a otro servidor/instancia, me encontré errores al cargar la web desde el Reporting los cuales hacían referencia al nombre original (pero sólo de la bbdd temporal del RS), es decir, el error referenciaba que la bbdd (temporal original) no existía.


El nombre de la bbdd temporal para un RS se graba en modo hardcode en los procedimientos, funciones y vistas de la bbdd principal



Buscando en Microsoft, encontré un enlace en el que se especificaba lo siguiente
 (http://msdn.microsoft.com/es-es/library/ms143724.aspx#bkmk_fixed_database_name):

Nota: Aunque el artículo es de sql 2014, también pasa en sql 2005-2008



Así que, no es tan sencillo como pasar las bbdd con otro nombre y reconfigurar el RS. Al no encontrar un procedimiento ni oficial ni extraoficial, echándole imaginación y paciencia, finalmente pude restaurar las bbdd de un RS con otro nombre (principal y temporal) pero haciendo un montón de modificaciones que seguro Microsoft se echa las manos a la cabeza. Pero parece que funciona, aunque si quedara algún fleco sin revisar, podría dar problemas. En mis pruebas, todo parece funcionar correctamente.

Los pasos que habría que seguir para llevarlo a efecto (A GRANDES RASGOS) son:

1) Backup y restore con otro nombre de las 2 bbdd del Reporting Services (se entiende que los usuarios y roles también)

2) Copia y restauración de la clave de encriptación

3) Modificación de todas las referencias que existen en todos los procedimientos almacenados
(+- 230) de la bbdd principal del RS

Para esto, seleccionamos todos los procedimientos en el SSMS y reemplazamos el nombre antiguo de la bbdd temporal por el nuevo.



Al ejecutar la consulta para que modifique todos los procedimientos del tirón, se producen errores, ya que también hay referencias en vistas y funciones.
* Modificamos y ejecutamos la consulta para guardar el cambio




* Modificamos y guardamos las vistas para manterner el cambio


4) Cambiado el nombre de servidor y el nombre de la bbdd. El contenido se mantiene.