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.