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.
Buscando en Microsoft, encontré un enlace en el que se especificaba lo siguiente
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.
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