Published on

August 9, 2022

Comment renommer une base de données SQL Server et ses fichiers

En tant qu’administrateur de base de données SQL Server junior, vous pouvez rencontrer des situations où vous devez renommer une base de données. Renommer une base de données implique non seulement de changer le nom de la base de données, mais aussi de mettre à jour les noms logiques et physiques des fichiers de base de données sous-jacents. Dans cet article, nous discuterons des étapes pour renommer une base de données SQL Server et ses fichiers.

Étape 1 : Créer une base de données d’exemple

Avant de commencer, créons une base de données d’exemple appelée CoreDB en utilisant le code T-SQL suivant :

USE master
GO

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'CoreDB')
DROP DATABASE CoreDB
GO

USE master
GO

CREATE DATABASE [CoreDB] 
ON PRIMARY 
( 
NAME = N'CoreDB', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\CoreDB.mdf' , 
SIZE = 2048KB , 
FILEGROWTH = 1024KB 
)
LOG ON 
( 
NAME = N'CoreDB_log', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\CoreDB_log.ldf' , 
SIZE = 1024KB , 
FILEGROWTH = 10%
)
GO

Étape 2 : Renommer la base de données

Pour renommer la base de données, nous utiliserons la commande ALTER DATABASE au lieu de la procédure stockée système sp_renamedb. La commande ALTER DATABASE nous permet de renommer à la fois la base de données et ses noms logiques et physiques. Exécutez le code T-SQL suivant pour renommer la base de données CoreDB en ProductsDB :

USE master
GO

ALTER DATABASE CoreDB 
SET SINGLE_USER 
WITH ROLLBACK IMMEDIATE
GO

EXEC master..sp_renamedb 'CoreDB','ProductsDB'
GO

ALTER DATABASE ProductsDB 
SET MULTI_USER 
GO

Étape 3 : Vérifier les noms logiques et physiques

Après avoir renommé la base de données, il est important de vérifier que les noms logiques et physiques ont été mis à jour. Exécutez le code T-SQL suivant pour vérifier les noms logiques et physiques de la base de données ProductsDB :

USE master
GO

/* Identifier les noms de fichiers de base de données */
SELECT 
name AS [Nom logique], 
physical_name AS [Chemin du fichier de base de données],
type_desc AS [Type de fichier],
state_desc AS [État] 
FROM sys.master_files
WHERE database_id = DB_ID(N'ProductsDB')
GO

La sortie devrait montrer que les noms logiques et physiques de la base de données ProductsDB ont été mis à jour.

Étape 4 : Renommer les fichiers physiques

Ensuite, nous devons renommer les fichiers physiques de la base de données. Cela peut être fait manuellement en changeant les noms de fichiers dans le dossier où ils se trouvent, ou en utilisant la procédure stockée système xp_cmdshell. Si vous choisissez d’utiliser xp_cmdshell, assurez-vous qu’elle est activée en exécutant le code T-SQL suivant :

USE master
GO

/* Activer xp_cmdshell */
sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO

Une fois que xp_cmdshell est activée, vous pouvez utiliser le script suivant pour renommer les fichiers physiques de la base de données :

USE master
GO

/* Renommer les fichiers physiques */
EXEC xp_cmdshell 'RENAME "C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\CoreDB.mdf", "ProductsDB.mdf"'
GO

EXEC xp_cmdshell 'RENAME "C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\CoreDB_log.ldf", "ProductsDB_log.ldf"'
GO

Après avoir renommé les fichiers physiques, désactivez xp_cmdshell en exécutant le code T-SQL suivant :

USE master
GO

/* Désactiver xp_cmdshell */
sp_configure 'xp_cmdshell', 0
RECONFIGURE WITH OVERRIDE
GO

sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
GO

Étape 5 : Attacher la base de données renommée

Enfin, nous devons attacher la base de données renommée. Exécutez le code T-SQL suivant pour attacher la base de données ProductsDB :

USE master
GO

CREATE DATABASE ProductsDB ON 
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\ProductsDB.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\ProductsDB_log.ldf' )
FOR ATTACH
GO

Étape 6 : Autoriser l’accès multi-utilisateur

Une fois la base de données attachée, nous pouvons autoriser l’accès multi-utilisateur en exécutant le code T-SQL suivant :

USE master
GO

/* Définir la base de données en mode multi-utilisateur */
ALTER DATABASE ProductsDB SET MULTI_USER 
GO

Conclusion

Dans cet article, nous avons discuté des étapes pour renommer une base de données SQL Server et ses fichiers. En suivant ces étapes, vous pouvez vous assurer que le nom de la base de données, le nom logique et le nom physique sont tous mis à jour correctement. Renommer une base de données est une tâche importante pour un administrateur de base de données SQL Server, et il est crucial de mettre à jour tous les noms pertinents pour éviter toute confusion avec les opérations de sauvegarde, de restauration ou de détachement/attachement.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.