重命名数据库的正确程序是什么?
示例:我有一个可以使用SQL Server Management Studio访问的数据库,其名称类似于“MyDatabase”。该数据库的物理文件是
如何将这些逻辑和物理名称重命名为“MyNewDatabase”?
感谢您的帮助
答案 0 :(得分:10)
从here开始逐字逐句:
有多种方法可以进行此更改,但是要在操作系统级别重命名物理数据库文件,您必须使数据库脱机
使用SSMS使数据库脱机(右键单击Database,选择Tasks,Take Offline),在操作系统级别更改文件名,然后将其置于联机状态。
您可以分离数据库,重命名文件,然后附加指向重命名文件的数据库。
您可以备份数据库,然后还原,在还原过程中更改文件位置。
使用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
了解更多信息http://technet.microsoft.com/en-us/library/ms174269.aspx
答案 1 :(得分:7)
在右键单击Management Studio中的数据库时出现的使用“上下文菜单中的重命名”选项时要小心。此选项不会更改数据库文件名。要更改DATA和LOG文件的逻辑文件名,您还可以使用Management Studio界面,但遗憾的是,有时它不起作用。
让我们做得恰到好处......它应该始终有效。
使用新名称附加数据库:为此使用T SQL:
USE [master] 创建数据库[SqlAndMe] ON (FILENAME = N'C:\ ... \ NewName.mdf'), (FILENAME = N'C:\ ... \ NewName_log.LDF') FOR ATTACH
重命名逻辑文件名:执行此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
它应该有效!
答案 2 :(得分:1)
有多种方法可以进行此更改,但是要在操作系统级别重命名物理数据库文件,您必须使数据库脱机
sp_renamedb'olddatabasename','newdatabasename'
但要确保数据库未被使用。
答案 3 :(得分:0)
更改文件名后,无法使用GUI进行重新附加
创建数据库MyAdventureWorks
ON(FILENAME ='C:\ MySQLServer \ AdventureWorks_Data.mdf'),
(FILENAME ='C:\ MySQLServer \ AdventureWorks_Log.ldf')
FOR ATTACH;
刷新您的SSMS,您就完成了。
参考文献
注意:如果您希望输入尽可能少的代码。分离数据库后,在更改文件名之前使用GUI开始重新连接过程。使用“Script Action to ...”并获取代码。使用Windows资源管理器更改文件名后,在SSMS中的代码中更新它们并运行它。