J'ai une base de données appelée "ip_ent_site". Et je veux le renommer "ip_ent_site1" par exemple.
J'ai fait un clic droit et renommé, la sauvegarde a échoué . Voici le message d'erreur:
Quelqu'un peut aider?
C'est parce qu'il y a des transactions ouvertes. Si ces transactions peuvent être tuées, cela peut être facilement fait avec ce SQL
ALTER DATABASE ip_ent_site
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
sp_rename 'ip_ent_site', 'new_db_name' ,'DATABASE';
GO
ALTER DATABASE new_db_name
SET MULTI_USER
GO
La raison en est que la base de données doit empêcher toute autre connexion/transaction à la base de données lorsque vous la renommez.
Un script simple pour obtenir un verrou sur la base de données:
ALTER DATABASE [ip_ent_site] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [ip_ent_site] MODIFY NAME = [ip_ent_site_new]
GO
ALTER DATABASE [ip_ent_site_new] SET MULTI_USER;
GO
Avant de renommer, définissez la base de données en mode mono-utilisateur MSDN
USE master;
GO
ALTER DATABASE ip_ent_site
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
Puis le renommer
USE master
GO
ALTER DATABASE ip_ent_site
Modify Name = ip_ent_site1
GO
Et puis remettez-le en mode multi-utilisateur
ALTER DATABASE ip_ent_site1
SET MULTI_USER;
Pour permettre la capacité de
clic droit et renommer
la DB:
Exécuter la requête ci-dessous
UTILISER le maître;
ALLER
sp_renamedb @dbname = 'old_name', @newname = 'new_name'
C'est le moyen le plus simple de renommer le nom de la base de données. Assurez-vous simplement d'avoir fermé toutes les fenêtres de requête avant d'exécuter cette commande.
EXEC sp_renamedb 'ancien_nom', 'nouveau_nom'
S'il vous plaît essayez ceci, cela fonctionnera.
ALTER DATABASE GWPRD_CMCC - ancien nom de la base de données
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO ALTER DATABASE GWPRD_CMCC --old nom de la base de données
MODIFY NAME = GWPRD_CMCC_1 --new db name
GO ALTER DATABASE GWPRD_CMCC_1 --nom nouveau nom de la base de données SET MULTI_USER GO
Ne devrions-nous pas également changer le 'Nom de fichier logique'?
ALTER DATABASE [testdb] MODIFY FILE (NAME=N'testdbold ', NEWNAME=N'testdb')
GO
ALTER DATABASE [testdb] MODIFY FILE (NAME=N'testdbold', NEWNAME=N'testdb_log')
GO
Renommer le nom de la base de données SQL à l'aide de la requête
utilisez [master] go
Modifier la base de données Old_database_name Modify name = New_database_name
ou
sp_renameDB 'ancien_nom_base', 'nouveau_nom_base'
Exécutez la procédure système sp_who2
pour connaître les sessions utilisant la base de données, puis fermez les applications ou supprimez les sessions avec la commande kill .