更改SQL数据库的名称

时间:2010-11-02 17:32:54

标签: sql-server-2008

重命名数据库的正确程序是什么?

示例:我有一个可以使用SQL Server Management Studio访问的数据库,其名称类似于“MyDatabase”。该数据库的物理文件是

  • MyDatabase.mdf
  • MyDatabase_log.ldf

如何将这些逻辑和物理名称重命名为“MyNewDatabase”?

感谢您的帮助

4 个答案:

答案 0 :(得分:10)

here开始逐字逐句:

有多种方法可以进行此更改,但是要在操作系统级别重命名物理数据库文件,您必须使数据库脱机

  1. 使用SSMS使数据库脱机(右键单击Database,选择Tasks,Take Offline),在操作系统级别更改文件名,然后将其置于联机状态。

  2. 您可以分离数据库,重命名文件,然后附加指向重命名文件的数据库。

  3. 您可以备份数据库,然后还原,在还原过程中更改文件位置。

  4. 使用T SQL

    ALTER DATABASE databaseName SET OFFLINE GO

    ALTER DATABASE databaseNAme MODIFY FILE(NAME = db,FILENAME ='C:\ Program Files \ Microsoft SQL Server \ MSSQL.2 \ MSSQL \ Data \ db.mdf') 走 - 如果更改日志文件名

    ALTER DATABASE databaseNAme MODIFY FILE(NAME = db_log,FILENAME = 'C:\ Program Files \ Microsoft SQL Server \ MSSQL.2 \ MSSQL \ Data \ db.ldf') GO

    ALTER DATABASE databaseName SET ONLINE GO

  5. 了解更多信息http://technet.microsoft.com/en-us/library/ms174269.aspx

答案 1 :(得分:7)

在右键单击Management Studio中的数据库时出现的使用“上下文菜单中的重命名”选项时要小心。此选项不会更改数据库文件名。要更改DATA和LOG文件的逻辑文件名,您还可以使用Management Studio界面,但遗憾的是,有时它不起作用

让我们做得恰到好处......它应该始终有效。

  1. 分离数据库: 使用Management Studio,右键单击数据库>转到“任务”> “分离”,单击“确定”以分离数据库(注意:数据库不能用于分离数据库)
  2. 重命名物理文件:分离数据库后,物理文件将被解锁,您可以使用Windows资源管理器重命名它们: enter image description here
  3. 使用新名称附加数据库:为此使用T SQL:

    USE [master] 创建数据库[SqlAndMe] ON (FILENAME = N'C:\ ... \ NewName.mdf'), (FILENAME = N'C:\ ... \ NewName_log.LDF') FOR ATTACH

  4. 重命名逻辑文件名:执行此T SQL:

    USE [NewName] ALTER DATABASE [NewName] 修改文件(NAME = N'OldName',NEWNAME = N'NewName') ALTER DATABASE [NewName] 修改文件(NAME = N'OldName_log',NEWNAME = N'NewName_log') SELECT name,physical_name FROM [NewName] .sys.database_files

  5. 它应该有效!

答案 2 :(得分:1)

有多种方法可以进行此更改,但是要在操作系统级别重命名物理数据库文件,您必须使数据库脱机

sp_renamedb'olddatabasename','newdatabasename'

但要确保数据库未被使用。

答案 3 :(得分:0)

  • 您可以使用SSMS重命名数据库; rclick数据库>重命名
  • 您可以使用SSMS更改逻辑名称;数据库>属性>文件>编辑逻辑名称
  • 使用SSMS分离数据库;数据库>任务>分离...
  • 您可以使用Windows资源管理器(分离后)更改文件名
  • 更改文件名后,无法使用GUI进行重新附加

    创建数据库MyAdventureWorks
    ON(FILENAME ='C:\ MySQLServer \ AdventureWorks_Data.mdf'),
    (FILENAME ='C:\ MySQLServer \ AdventureWorks_Log.ldf')
    FOR ATTACH;

刷新您的SSMS,您就完成了。

参考文献

注意:如果您希望输入尽可能少的代码。分离数据库后,在更改文件名之前使用GUI开始重新连接过程。使用“Script Action to ...”并获取代码。使用Windows资源管理器更改文件名后,在SSMS中的代码中更新它们并运行它。