Scénario :
Nous sommes souvent confrontés à la situation où nous devons renommer la base de données. Pensez à la situation, vous travaillez en tant que développeur SQL Server pour une société financière et ils ont le nom de base de données TechBrothersIT et ils aimeraient renommer Techbrothers. Vous devez fournir les scripts pouvant être exécutés dans les environnements QA, UAT et Production.Solution :
Renommer par l'interface graphique :Renommer la base de données est très facile, vous pouvez simplement faire un clic droit sur la base de données, puis choisir Renommer.
Comment renommer une base de données dans SQL Server - Tutoriel SQL Server / TSQL
Vous allez voyez que le nom de la base de données vous demandera un changement. Allez-y, changez-le et appuyez sur Entrée. Comment renommer une base de données dans SQL Server - Tutoriel SQL Server / TSQL
Comment renommer la base de données à l'aide de TSQL : Vous pouvez utiliser TSQL pour renommer la base de données dans SQL Server.
1) En utilisant la procédure stockée du système Sp_Rename, nous pouvons utiliser la procédure stockée du système sp_rename pour renommer la base de données dans le serveur SQL. Disons que nous aimerions renommer TechBrtohersIT en TechBrother. Nous pouvons utiliser le script ci-dessous.
sp_renamedb 'OldDatabaseName','NewDatabaseName'EXEC sp_renamedb 'TechBrothersIT','TechBrothers'
2) Utiliser Alter Database avec Modifier Nous pouvons utiliser le script ci-dessous pour renommer. Dans cet exemple, je renomme TechBrothersIT en TechBrothers.
USE master;GOALTER DATABASE TechBrothersITModify Name =TechBrothers;GO
Erreur courante : Disons que la base de données est utilisée par différentes applications. vous pourriez obtenir l'erreur ci-dessous.
Msg 5030, Niveau 16, État 2, Ligne 4
La base de données n'a pas pu être exclusivement verrouillée pour effectuer l'opération.
Dans ce cas, vous peut tuer toutes les connexions avant d'exécuter le script de renommage. Le script ci-dessous peut être utilisé pour tuer toutes les connexions sur une base de données.Assurez-vous auprès de votre équipe et des autres équipes avant de supprimer toutes les connexions sur la base de données pour les renommer.
USE MASTERGODECLARE @DatabaseName AS VARCHAR(500) --> Fournissez le nom de la base de données pour laquelle vous voulez tuer tous les processus. @FETCH_STATUS =0 BEGIN DECLARE @SQL VARCHAR(500)=NULL SET @SQL='Kill ' + CAST(@Spid AS VARCHAR(5)) EXEC (@SQL) PRINT 'ProcessID =' + CAST(@Spid AS VARCHAR( 5)) + 'tué avec succès' FETCH Next FROM KillProcessCur INTO @Spid ENDCLOSE KillProcessCurDEALLOCATE KillProcessCur