最佳实践--重命名数据库
来源:互联网 发布:阿里云挂载数据盘设置 编辑:程序博客网 时间:2024/05/30 04:56
前言
我在很多客户那里就遇到过数据库名字是DB2017,逻辑文件名,和物理文件名字还是DB2016,等等各种各样的名字都有,在后续操作的时候很容易产生误导.因为大家平时最经常使用的就是sp_renamedb ,或者是在SSMS工具中右键进行重命名。这样操作简单,快捷。但是有一个问题就是对应的mdf,ldf文件名字不会跟着改变.而且数据库的逻辑文件名也不会跟着改变。
问题
我们用如下脚本重命名数据库:
USE master
GO
ALTER DATABASE Mydb
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
GO
EXEC master..sp_renamedb 'Mydb','MydbNew'
GO
ALTER DATABASE MydbNew
SET MULTI_USER
GO
查看数据库的文件名:
SELECT
name AS [Logical Name],
physical_name AS [DB File Path],
type_desc AS [File Type],
state_desc AS [State]
FROM sys.master_files
WHERE database_id = DB_ID(N'MydbNew')
可以看到数据库文件名字和物理文件名字,还是之前的Mydb.
最佳实践
1,我们需要修改数据库的逻辑文件名字
ALTER DATABASE Mydb SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [Mydb] MODIFY FILE (NAME=N'Mydb', NEWNAME=N'MydbNew')
GO
ALTER DATABASE [Mydb] MODIFY FILE (NAME=N'Mydb_log', NEWNAME=N'MydbNewlog')
GO
2.修改物理文件名字
1.分离数据库
USE [master]GOEXEC master.dbo.sp_detach_db @dbname = N'Mydb'GO
2.修改物理文件名字
找到上面文件的路径,对他进行重命名
3.附加数据库.
USE [master]GOCREATE DATABASE MydbNew ON ( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MydbNew.mdf' ),( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MydbNew_log.ldf' ) FOR ATTACHGO
4.设置为多用户
ALTER DATABASE MydbNew SET MULTI_USER
5.检查
总结
修改数据库名字是一个很常见的操作,直接改名很容易,但是可能会以后留下隐患。
阅读全文
1 0
- 最佳实践--重命名数据库
- 数据库设计最佳实践
- 数据库设计最佳实践
- 数据库设计的最佳实践
- 数据库设计的最佳实践
- 数据库优化的最佳实践
- SQLite 数据库的最佳实践
- 实践--升级数据库最佳写法
- SQLite 数据库的最佳实践
- PHP最佳实践之数据库
- 阿里数据库DevOps最佳实践
- 【最佳实践】分布式数据库关联查询优化与最佳实践
- 测试 J2EE 数据库应用程序的最佳实践
- 测试 J2EE 数据库应用程序的最佳实践
- 测试 J2EE 数据库应用程序的最佳实践
- 数据库设计与建模最佳实践
- 数据库设计的几条最佳实践
- 数据库设计与建模最佳实践
- ubuntu14.04 ceph分布式集群搭建(二)
- PHP应用函数实现小功能
- pat:1040. 有几个PAT(25)
- Web 应用中使用打印机打印网页信息
- Redis中的GETBIT和SETBIT
- 最佳实践--重命名数据库
- HDU
- 动态规划小心得(结合数字三角)
- 微信开发接口封装调用
- 经典算法-打印杨辉三角形
- celery confirm 机制
- Spark入门(六):共享变量(累加器和广播变量)
- redis cluster 模式如何批量删除指定前缀的key
- 模拟实现单元测试中的异步测试