我有一个名为"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;
原因是因为在重命名数据库时,数据库必须防止任何其他连接/事务对其进行访问。
获取数据库锁的简单脚本:
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
USE [master];
GO
--Disconnect all existing session.
ALTER DATABASE Datatbase_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
--将数据库设置为OFFLINE模式。 ALTER DATABASE 数据库名称 SET OFFLINE 要重命名物理数据库文件,请使用打开SQL Server Management Studio文件夹或使用以下脚本
--允许更改高级选项。
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
ALTER DATABASE [Datatbase_Name] MODIFY FILE (Name='Old_Mdf_file_Name', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL13.SQLMS2016\MSSQL\DATA\New_Mdf_file_Name.mdf')
ALTER DATABASE [Datatbase_Name] MODIFY FILE (Name='Old_log_file_Name', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL13.SQLMS2016\MSSQL\DATA\New_log_file_Name.ldf')
EXEC xp_cmdshell 'RENAME "C:\Program Files\Microsoft SQL Server\MSSQL13.SQLMS2016\MSSQL\DATA\Old_Mdf_file_Name.mdf", "New_Mdf_file_Name.mdf"'
GO
EXEC xp_cmdshell 'RENAME "C:\Program Files\Microsoft SQL Server\MSSQL13.SQLMS2016\MSSQL\DATA\Old_log_file_Name.ldf", "New_log_file_Name.ldf"'
GO
ONLINE DATABASE
ALTER DATABASE [Datatbase_Name] SET ONLINE
Go
ALTER DATABASE [Datatbase_Name] SET MULTI_USER
Go
这是重命名数据库名称的最简单方法。在运行此命令之前,请确保您已关闭所有查询窗口。
EXEC sp_renamedb 'old_Name', 'new_Name'
此功能将在未来版本的Microsoft SQL Server中被删除。避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。请改用ALTER DATABASE MODIFY NAME。
- msysmiluALTER DATABASE [testdb] MODIFY FILE (NAME=N'testdbold ', NEWNAME=N'testdb')
GO
ALTER DATABASE [testdb] MODIFY FILE (NAME=N'testdbold', NEWNAME=N'testdb_log')
GO
执行以下查询
USE master;
GO
sp_renamedb @dbname = 'old_name' , @newname = 'new_name'
使用查询重命名SQL数据库名称
use [master] go
Alter Database Old_database_name Modify name = New_database_name
或者
sp_renameDB 'old_dbname' , 'new_dbname'