在 sql server management studio 2014 中重命名数据库名称

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30660204/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 03:41:53  来源:igfitidea点击:

rename database name in sql server management studio 2014

sqlsql-servertsqlssms

提问by

I have a database called "ip_ent_site". And I wanna rename it to "ip_ent_site1" for example.

我有一个名为“ip_ent_site”的数据库。例如,我想将其重命名为“ip_ent_site1”。

enter image description here

在此处输入图片说明

I have done right click and rename, it is keeping on failed. This is the error message:

我已经完成了右键单击并重命名,它一直失败。这是错误消息:

enter image description here

在此处输入图片说明

Anyone can help?

任何人都可以帮忙吗?

回答by Raj

That is because there are open transactions. If those transactions can be killed, then this can easily be done with this SQL

那是因为有未结交易。如果可以终止这些事务,那么可以使用此 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

回答by sqluser

Before renaming, set the database to single user mode MSDN

重命名前,将数据库设置为单用户模式MSDN

USE master;
GO
ALTER DATABASE ip_ent_site
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;

Then rename it

然后重命名

USE master
GO
ALTER DATABASE ip_ent_site
Modify Name = ip_ent_site1
GO

And then put it back to multi user mode

然后把它放回多用户模式

ALTER DATABASE ip_ent_site1
SET MULTI_USER;

回答by Ranbeer M

The reason is because the database has to prevent any other connection/transaction to the db while you are renaming it.

原因是因为在重命名数据库时,数据库必须阻止与数据库的任何其他连接/事务。

A simple script to get a lock on the 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

回答by Danny Mahoney

To enable the ability to

为了能够

right click and rename

右键单击并重命名

the DB:

数据库:

  1. Close all query windows
  2. Right click & rename DB
  1. 关闭所有查询窗口
  2. 右键单击并重命名数据库

回答by Developer_29

Execute below query

执行以下查询

USE master;
GO
sp_renamedb @dbname = 'old_name' , @newname = 'new_name'

使用大师;

sp_renamedb @dbname = 'old_name' ,@newname = 'new_name'

回答by Sachin Pakale

This the simplest way to rename Database name. Just make sure you have closed all the query windows before running this command.

这是重命名数据库名称的最简单方法。在运行此命令之前,请确保您已关闭所有查询窗口。

EXEC sp_renamedb 'old_Name', 'new_Name'

EXEC sp_renamedb 'old_Name', 'new_Name'

回答by Igor Borisenko

Execute system procedure sp_who2to find out sessions which use the database and then close applications or kill sessions with killcommand.

执行系统程序sp_who2以找出使用数据库的会话,然后关闭应用程序或使用kill命令终止会话。

回答by Khan

Shouldn't we also change 'Logical File Name' as well?

我们不应该也更改“逻辑文件名”吗?

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 [testdb] MODIFY FILE (NAME=N'testdbold ', NEWNAME=N'testdb') GO ALTER DATABASE [testdb] MODIFY FILE (NAME=N'testdbold', NEWNAME=N'testdb_log') GO

回答by Pani

Please try this,it will work.

请试试这个,它会起作用。

ALTER DATABASE GWPRD_CMCC --old db name

ALTER DATABASE GWPRD_CMCC --旧数据库名称

SET SINGLE_USER WITH ROLLBACK IMMEDIATE

GO ALTER DATABASE GWPRD_CMCC --old db name

GO ALTER DATABASE GWPRD_CMCC --旧数据库名称

MODIFY NAME = GWPRD_CMCC_1 --new db name

GO ALTER DATABASE GWPRD_CMCC_1 --new db name SET MULTI_USER GO

GO ALTER DATABASE GWPRD_CMCC_1 --new db name SET MULTI_USER GO

回答by Md Ashikul Islam

Rename SQLDatabase name Using Query

使用查询重命名 SQLDatabase 名称

use [master] go

使用 [master] 去

Alter Database Old_database_name Modify name = New_database_name

更改数据库 Old_database_name 修改名称 = New_database_name

or

或者

sp_renameDB 'old_dbname' , 'new_dbname'

sp_renameDB 'old_dbname' 'new_dbname'