【问题标题】:rename database name in sql server management studio 2014在 sql server management studio 2014 中重命名数据库名称
【发布时间】:2015-08-20 00:44:08
【问题描述】:

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

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

有人可以帮忙吗?

【问题讨论】:

  • @JasonClark - 我认为您的链接链接回此页面...

标签: sql sql-server tsql ssms


【解决方案1】:

重命名前,将数据库设置为单用户模式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;

【讨论】:

  • 如果您临时将其设置为 single_user,则无需将数据库设置为只读。另外,您没有放入脚本以将其从只读状态中删除!
  • 你是对的@ErikE。我编辑了答案。很好的收获。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    那是因为有未结交易。如果这些事务可以被杀死,那么这可以很容易地用这个 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
    

    【讨论】:

    • 你能解释一下每条语句的含义吗?我很想知道,提前谢谢
    • 第一条语句将数据库设置为单用户并终止所有打开的连接并回滚所有打开的事务。第二条语句重命名数据库。最后一条语句为用户连接打开重命名的数据库
    • 拒绝投票很好。但是,无论谁投了反对票,也愿意解释一下,所以我们所有人都能学到新东西吗?
    • 像这样重命名时,我的 DB.mdf 文件没有被重命名,并且在创建另一个同名数据库时遇到问题。
    【解决方案4】:

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

    获取数据库锁的简单脚本:

    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
    

    【讨论】:

    • 我一直在使用这个查询来重命名一个数据库,不知道为什么答案没有用。
    • 这是有效的 SQL 并完成了这项工作,除了第三条语句需要使用新名称。想知道谁投了反对票以及为什么。
    【解决方案5】:

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

    EXEC sp_renamedb 'old_Name', 'new_Name'

    【讨论】:

    • 不错的单行但是:This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER DATABASE MODIFY NAME instead.
    【解决方案6】:

    启用功能

    右键重命名

    数据库:

    1. 关闭所有查询窗口
    2. 右键单击并重命名数据库

    【讨论】:

      【解决方案7】:

      使用查询重命名 SQLDatabase 名称

      使用[主] 去

      Alter Database Old_database_name Modify name = New_database_name

      sp_renameDB 'old_dbname' , 'new_dbname'

      【讨论】:

        【解决方案8】:

        执行下面的查询

        使用大师;

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

        【讨论】:

          【解决方案9】:

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

          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

          【讨论】:

            【解决方案10】:

            请试试这个,它会工作的。

            ALTER DATABASE GWPRD_CMCC --old 数据库名称

            SET SINGLE_USER WITH ROLLBACK IMMEDIATE
            

            去 ALTER DATABASE GWPRD_CMCC --old 数据库名称

            MODIFY NAME = GWPRD_CMCC_1 --new db name
            

            去 ALTER DATABASE GWPRD_CMCC_1 --新数据库名称 设置多用户 去吧

            【讨论】:

              【解决方案11】:

              离线数据库

              USE [master];
              GO
              --Disconnect all existing session.
              ALTER DATABASE Datatbase_Name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
              GO
              

              --将数据库更改为离线模式。 ALTER DATABASE Datatbase_Name 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
              

              重命名 MDF 文件和日志

              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
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-10-15
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多