sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo cambiar el nombre de una base de datos de SQL Server usando T-SQL

Si bien puede cambiar el nombre de una base de datos de SQL Server en la GUI de SSMS haciendo clic con el botón derecho en el nombre de la base de datos y seleccionando Cambiar nombre , a veces puede preferir (o necesitar) hacerlo usando Transact-SQL.

La forma más básica de cambiar el nombre de una base de datos usando T-SQL es así:

-- Change to the master database
USE master;

-- Change the database name
ALTER DATABASE Films  
Modify Name = Movies; 
GO

El único problema con este script básico es que no cambia el nombre de los archivos de datos y archivos de registro. En la mayoría de los casos, probablemente querrá cambiar los nombres de estos archivos para que coincidan con el nuevo nombre. En ese caso, puede tomar el siguiente script y reemplazar el nombre de la base de datos con el suyo propio (así como sus nombres de archivo y rutas):

-- Change to the master database
USE master;

-- Change the database name
ALTER DATABASE Films  
Modify Name = Movies; 
GO

-- Change the logical name of the data file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Films', 
  NEWNAME = 'Movies' 
  );

-- Change the logical name of the log file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Films_log', 
  NEWNAME = 'Movies_log' 
  );

-- Change the physical name of the data file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Movies', 
  FILENAME = 'D:\mssql\data\Movies.mdf' 
  );

-- Change the physical name of the log file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Movies_log', 
  FILENAME = 'D:\mssql\data\Movies_log.ldf' 
  );  

-- Check it (View the list of database files and their locations)
USE master;
SELECT 
  name 'Logical Name', 
  physical_name 'File Location',
  size 'File Size'
FROM sys.master_files;

Esta secuencia de comandos cambia el nombre de la base de datos, cambia el nombre lógico del archivo de datos y el archivo de registro, y luego cambia el nombre del archivo físico real de esos archivos. Termina con la selección de una lista de todos los archivos de la base de datos y sus ubicaciones. Esto le permite verificar que sus archivos tengan el nombre correcto.

Uso de rutas de archivo de Linux/Mac

El ejemplo anterior utiliza la sintaxis de ruta de archivo de Windows (barras diagonales inversas y una letra de unidad). Si usa Linux o Mac, la sintaxis de la ruta del archivo se parecerá más al siguiente ejemplo (solo cambiaron las rutas del archivo; todo lo demás permanece igual).

-- Change to the master database
USE master;

-- Change the database name
ALTER DATABASE Films  
Modify Name = Movies; 
GO

-- Change the logical name of the data file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Films', 
  NEWNAME = 'Movies' 
  );

-- Change the logical name of the log file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Films_log', 
  NEWNAME = 'Movies_log' 
  );

-- Change the physical name of the data file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Movies', 
  FILENAME = '/var/opt/mssql/data/Movies.mdf' 
  );

-- Change the physical name of the log file
ALTER DATABASE Movies
MODIFY FILE ( 
  NAME = 'Movies_log', 
  FILENAME = '/var/opt/mssql/data/Movies_log.ldf' 
  );  

-- Check it (View the list of database files and their locations)
USE master;
SELECT 
  name 'Logical Name', 
  physical_name 'File Location',
  size 'File Size'
FROM sys.master_files;

Asegúrese de hacer una copia de seguridad de la base de datos maestra una vez que haya cambiado el nombre de su(s) base(s) de datos (aquí se explica cómo hacer una copia de seguridad de una base de datos con T-SQL). También es posible que desee verificar/actualizar los scripts que tenga para asegurarse de que hagan referencia al nuevo nombre de la base de datos.