У меня есть база данных под названием "ip_ent_site". И я хочу переименовать его на "ip_ent_site1", например.
Я сделал щелчок правой кнопкой мыши и переименовал, он продолжает работать неудачно. Это сообщение об ошибке:
Любой может помочь?
У меня есть база данных под названием "ip_ent_site". И я хочу переименовать его на "ip_ent_site1", например.
Я сделал щелчок правой кнопкой мыши и переименовал, он продолжает работать неудачно. Это сообщение об ошибке:
Любой может помочь?
Это потому, что есть открытые транзакции. Если эти транзакции могут быть убиты, то это можно легко сделать с помощью этого 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
Перед переименованием установите базу данных в однопользовательский режим MSDN
USE master;
GO
ALTER DATABASE ip_ent_site
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
Затем переименуйте его
USE master
GO
ALTER DATABASE ip_ent_site
Modify Name = ip_ent_site1
GO
А затем вернуть его в многопользовательский режим
ALTER DATABASE ip_ent_site1
SET MULTI_USER;
Причина в том, что в базе данных необходимо предотвратить любое другое соединение/транзакцию в db во время ее переименования.
Простой script, чтобы получить блокировку на db:
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
Чтобы включить возможность
щелкните правой кнопкой мыши и переименуйте
БД:
Это самый простой способ переименовать имя базы данных. Просто убедитесь, что вы закрыли все окна запросов перед запуском этой команды.
EXEC sp_renamedb 'old_Name', 'new_Name'
Выполнить запрос ниже
ИСПОЛЬЗОВАТЬ мастер;
ИДТИ
sp_renamedb @dbname = 'old_name', @newname = 'new_name'
Выполнить системную процедуру sp_who2
, чтобы узнать сеансы, которые используют базу данных, а затем закрыть приложения или убить сеансы с помощью команды kill.
Переименуйте имя SQLDatabase с помощью Query
использовать [мастер] идти
Alter Database Old_database_name Изменить имя = New_database_name
или
sp_renameDB 'old_dbname', 'new_dbname'
Не должны ли мы также изменить "Логическое имя файла"?
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
Пожалуйста, попробуйте это, это будет работать.
ALTER DATABASE GWPRD_CMCC --old имя базы данных
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO ALTER DATABASE GWPRD_CMCC --old имя базы данных
MODIFY NAME = GWPRD_CMCC_1 --new db name
GO ALTER DATABASE GWPRD_CMCC_1 --new имя базы данных SET MULTI_USER GO