Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment renommer une base de données SQL Server à l'aide de T-SQL

Bien que vous puissiez certainement renommer une base de données SQL Server dans l'interface graphique SSMS en cliquant avec le bouton droit sur le nom de la base de données et en sélectionnant Renommer , vous pouvez parfois préférer (ou avoir besoin) de le faire à l'aide de Transact-SQL.

La manière la plus simple de renommer une base de données à l'aide de T-SQL est la suivante :

-- Change to the master database
USE master;

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

Le seul problème avec ce script de base est qu'il ne change pas le nom des fichiers de données et des fichiers journaux. Dans la plupart des cas, vous souhaiterez probablement modifier les noms de ces fichiers pour qu'ils correspondent au nouveau nom. Dans ce cas, vous pouvez prendre le script suivant et remplacer le nom de la base de données par le vôtre (ainsi que ses noms de fichiers et chemins) :

-- 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;

Ce script renomme la base de données, renomme les noms logiques du fichier de données et du fichier journal, puis renomme le nom de fichier physique réel de ces fichiers. Il se termine par la sélection d'une liste de tous les fichiers de base de données et de leurs emplacements. Cela vous permet de vérifier que vos fichiers portent bien le bon nom.

Utilisation des chemins de fichiers Linux/Mac

L'exemple ci-dessus utilise la syntaxe de chemin de fichier Windows (barres obliques inverses et lettre de lecteur). Si vous utilisez Linux ou Mac, la syntaxe du chemin de fichier ressemblera davantage à l'exemple suivant (seuls les chemins de fichier ont changé - tout le reste reste le même).

-- 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;

Assurez-vous de sauvegarder la base de données principale une fois que vous avez renommé votre ou vos bases de données (voici comment sauvegarder une base de données avec T-SQL). Vous pouvez également vérifier/mettre à jour tous les scripts dont vous disposez pour vous assurer qu'ils font référence au nouveau nom de la base de données.