sqlserver2008数据库改名(数据库名,逻辑名,物理文件名)
(2018-07-11 17:50:40)分类: IT |
exec sp_renamedb 'Test','NewTest'
如果报以下错误:
无法用排他锁锁定该数据库,以执行该操作。
把test数据库的选项,状态下
将 限制访问 ,MULTI_USER,意为多用户模式,然后你将其更改为【SINGLE_USER】单用户模式
然后再执行sql语句
exec sp_renamedb 'Test','NewTest'
成功。
2、更改数据库name
更改数据库文件名:
select * from sys.database_files
查询出来,看看数据库文件名和物理名称在什么地方。
然后修改数据库的name:
ALTER DATABASE newtest MODIFY FILE(NAME='SqlServer_BC_20120727194252_Data',NEWNAME='newtest_data')
ALTER DATABASE newtest MODIFY FILE(NAME='SqlServer_BC_20120727194252_Log',NEWNAME='newtest_log')
更改完毕之后,数据库name已经更改过来了,但是physical_name还是test.mdf 和test.ldf,没有更改过来。
既逻辑名已经变更,但是物理文件名称还没有变过来。
3、更改数据库物理名称physical_name:
select * from sys.database_files
开始:
use master
go
--1.分离
exec sp_detach_db NewTest
go
--2.改名(这一步可以换成手动改名字)
exec sp_configure 'show advanced options',1 --显示高级选项
reconfigure with override--重新配置
exec sp_configure 'show advanced options',0
reconfigure with override
执行第二步的时候一直报错,无法执行成功。
不再执行第二步,手工直接修改文件名,将test.mdf 修改为newtest.mdf,将test.ldf修改为newtest.ldf
然后执行第三步,下面的语句。
--3.附加
exec sp_attach_db NewTest,N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newtest.Mdf',N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newtest.ldf'
ok!
既:
select * from sys.database_files
use master
go
--1.分离
exec sp_detach_db NewTest
go
exec sp_attach_db NewTest,N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newtest.Mdf',N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\newtest.ldf'