lunes, 20 de agosto de 2018

ALTER DATABASE en SQL SERVER

Buenas noches queridos lectores, el día de hoy les mostraré como alterar una base de Datos, en post pasados vimos como agregar archivos secundarios y grupos de archivos, ¿que pasa si nos equivocamos al dar de alta la base de datos, le pusimos un nombre incorrecto, o simplemente queremos cambiar el nombre de la misma sin tener que borrar los datos y volverlos a insertar, o si queremos agregarle ahora un archivo secundario o cambiar el Collation?, pues bien, en este post veremos algo similar. Pero basta ya de charlas y pasemos a lo que nos gusta que es hacer.



Primeramente vamos a crear una base de datos llamada pronosticos


USE MASTER;
GO
CREATE DATABASE PRONOSTICOS
ON
(
       NAME = PRONOSTICOS_DATA,
       FILENAME = 'C:\PruebasSQLSERVER\PRONOSTICOS_DATA.MDF',
       SIZE = 10,
       MAXSIZE=50,
       FILEGROWTH = 5
)
LOG ON
(
       NAME = PRONOSTICOS_LOG,
       FILENAME = 'C:\PruebasSQLSERVER\PRONISTICOS_LOG.LDF',
       SIZE = 5MB,
       MAXSIZE = 25MB,
       FILEGROWTH = 5MB
)

Hasta aquí todo bien, pero ¿que pasa si ya cuando tiene datos decidimos que ese nombre no es del todo adecuado, y mejor se llamará la base de datos Estadísticas?. Pues bien, utilizaremos la sentencia, ALTER DATABASE para cambiar el nombre


USE master; 
GO 
ALTER DATABASE PRONOSTICOS 
Modify Name = ESTADISTICAS
GO  



Al ejecutar esta consulta, cambiará el nombre físico de la BD llamada PRONOSTICOS, por ESTADISTICAS, pero hay que tener cuidado, esto solo cambiará el nombre físico, el nombre lógico seguirá teniendo el nombre anterior, pero ¿como comprobamos esto?, pues con el procedimiento de sistema llamado sp_helpdb. Vamos a ver como se aplica.


sp_helpdb 'ESTADISTICAS' --Este es el nuevo nombre


  
Como podemos apreciar, los nombres lógicos siguen siendo los anteriores, así que también se los tenemos que cambiar

ALTER DATABASE ESTADISTICAS
  MODIFY FILE (NAME='PRONOSTICOS_DATA', NEWNAME='ESTADISTICAS_DATA')
GO

ALTER DATABASE ESTADISTICAS
  MODIFY FILE (NAME='PRONOSTICOS_LOG', NEWNAME='ESTADISTICAS_LOG')
GO

Al ejecutar el siguiente query, cambiaremos también los nombres lógicos de la base de datos, y nos aparecerá el siguiente mensaje:
Ahora, vamos a comprobar que efectivamente se cambiaron los nombres lógicos y recurriremos nuevamente al comando



sp_helpdb 'ESTADISTICAS' --Este es el nuevo nombre

Vemos que efectivamente se cambiaron los nombres lógicos


 Ahora, vamos a agregar un grupo de archivos y un archivo secundario, para eso realizaremos la siguientes consultas:

ALTER DATABASE ESTADISTICAS
ADD FILEGROUP CATALOGOS

ALTER DATABASE ESTADISTICAS
 ADD FILE (NAME='CATALOGOS', FILENAME='C:\PruebasSQLSERVER\CATALOGOS.NDF')
 TO FILEGROUP CATALOGOS;


En la primer consulta se crea el Grupo de archivos llamado Catalogos, y en la segunda se crea un archivo secundario llamado Catalogos.ndf y se agrega al grupo de archivos.

Para poder verificar lo anterior, correremos los siguientes querys:



SELECT NAME, physical_name, SIZE  FROM SYS.database_files
SELECT * FROM SYS.filegroups

 

O si lo prefieren, podemos juntar esos querys en uno solo 


SELECT DF.NAME, physical_name, SIZE, FG.name GRUPO 
FROM SYS.database_files df
INNER JOIN  SYS.filegroups FG
ON FG.data_space_id = DF.data_space_id
 


De esta manera queridos lectores aprendimos a dar de alta nuevos grupos de archivos y archivos secundarios sin necesidad de volver a crear la base de datos.

Existen aún más opciones que se pueden modificar, pero lo dejaremos para otro post, de cualquier manera saben que si tiene una duda, pueden preguntar sin problemas. Espero les haya gustado este post, que haya sido de su agrado y sobre todo de utilidad. Espero compartan, den +1, comenten, o den clic a algún anuncio que les interese.

Saludos 

Banderas de Visitantes

Flag Counter