Vous êtes sur la page 1sur 3

Renommer les fichiers, logiques & physiques, d’une base de données

Objectif : renommer facilement l’intégralité des fichiers associés à une base de données.

URL : https://damienb.me/2020/03/09/renommer-les-fichiers-logiques-physiques-dune-base-de-donnees/

Elle comprend le renommage des éléments suivants :

• Nom de la base
• Nom des fichiers logiques
• Nom des fichiers physiques

Le renommage de la base comporte une coupure de service, aussi rapide soit-elle !

On prendra ici l’exemple de la base Database_1, qu’on veut renommer en Database_1_EURO

Renommage de la base

A cette étape, on va renommer l’entité « base de données », prise en compte au niveau de l’instance comme une « fédération de fichiers » (en
gros, ce que vous voyez dans l’explorateur de Management Studio).

Cette étape passe la base en SINGLE_USER, qui est nécessaire pour la suite.

1 USE [master]
2 GO
3 ALTER DATABASE [Database_1]
SET SINGLE_USER
4 WITH ROLLBACK IMMEDIATE
5 GO
6 EXEC master..sp_renamedb ' Database_1',' Database_1_EURO'
7 GO
8

Renommage des fichiers logiques de la base

Les fichiers logiques sont les noms donnés au niveau de l’instance pour identifier les fichiers physiques.

Ils peuvent être renommés sans coupure.

1 ALTER DATABASE [Database_1] MODIFY FILE (NAME=N' Database_1', NEWNAME=N' Database_1_EURO')


2 GO
3 ALTER DATABASE [Database_1_EURO] MODIFY FILE (NAME=N' Database_1_log', NEWNAME=N' Database_1_EURO_log')
GO
4

Renommage des fichiers physiques de la base

Après les fichiers logiques, on va maintenant s’attaquer aux fichiers physiques qui se trouvent en dessous.

On repère les fichiers physiques de la DB dans la vue système sys.master_files, afin d’aller ensuite les renommer dans le système de fichier
comme n’importe quel fichier.

1 USE [master]
2 GO
3 SELECT * FROM sys.master_files
4 WHERE DB_NAME(database_id) = ' Database_1_EURO'
--D:\Microsoft SQL Server\MSSQL14.SQL_INSTANCE\MSSQL\Data\ Database_1.mdf
5 --L:\Microsoft SQL Server\MSSQL14.SQL_INSTANCE\MSSQL\Data\ Database_1_log.ldf
6
On détache les fichiers de l’instance, ce qui va couper la base

1 USE [master]
2 GO
3 EXEC master.dbo.sp_detach_db @dbname = N' Database_1_EURO'
Renommage des fichiers physique de la base (ici le .mdf et le .ldf), directement depuis le système de fichier ( clic droit > Rename)
• « Database_1.mdf » devient « Database_1_EURO.mdf«
• « Database_1_log.ldf » devient « Database_1_EURO_log.ldf«

On attache à nouveau la base, en prenant en compte les nouveaux noms des fichiers

1 USE [master]
2 GO
3 CREATE DATABASE [Database_1_EURO] ON
4 ( FILENAME = N'D:\Microsoft SQL Server\MSSQL11.INSTANCE\MSSQL\Data\ Database_1_EURO.mdf'),
( FILENAME = N'L:\Microsoft SQL Server\MSSQL11.SQL_INSTANCE\MSSQL\Data\ Database_1_EURO_log.ldf')
5 FOR ATTACH
6
Vérifiez sous Mangement Studio que la base appararaît désormais correctement sous son nouveau nom.

NB : pensez à renommer également les User et les Logins associés à la base, s’ils existent.

Vous aimerez peut-être aussi