/*
该脚本示例如何完整的修改一个数据库的名称.
数据为原名称为DB_BEIJING,需要修改成DB_SHANGHAI
perfectaction 2012.12.19
*/
USE master
GO
IF EXISTS (
SELECT
name
FROM
sys.databases
WHERE
name
= N
'DB_BEIJING'
)
BEGIN
RAISERROR(
'请注意:数据库已存在!'
,15,1)
RETURN
END
GO
USE master
GO
CREATE
DATABASE
[DB_BEIJING]
ON
PRIMARY
(
NAME
= N
'DB_BEIJING'
,
FILENAME = N
'X:\DATA\DB_BEIJING.mdf'
,
SIZE
= 3072KB ,
FILEGROWTH = 1024KB
)
LOG
ON
(
NAME
= N
'DB_BEIJING_log'
,
FILENAME = N
'W:\Log\DB_BEIJING_log.ldf'
,
SIZE
= 1024KB ,
FILEGROWTH = 1024KB
)
GO
USE master
GO
ALTER
DATABASE
DB_BEIJING
SET
SINGLE_USER
WITH
ROLLBACK
IMMEDIATE
GO
EXEC
master..sp_renamedb
'DB_BEIJING'
,
'DB_SHANGHAI'
GO
ALTER
DATABASE
DB_SHANGHAI
SET
MULTI_USER
GO
USE master
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
'DB_SHANGHAI'
)
GO
/*
Logical
Name
DB File Path File Type State
DB_BEIJING X:\DATA\DB_BEIJING.mdf
ROWS
ONLINE
DB_BEIJING_log W:\Log\DB_BEIJING_log.ldf LOG ONLINE
*/
USE master
GO
ALTER
DATABASE
DB_SHANGHAI
SET
SINGLE_USER
WITH
ROLLBACK
IMMEDIATE
GO
ALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE (
NAME
=N
'DB_BEIJING'
, NEWNAME=N
'DB_SHANGHAI'
)
GO
ALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE (
NAME
=N
'DB_BEIJING_log'
, NEWNAME=N
'DB_SHANGHAI_log'
)
GO
ALTER
DATABASE
DB_SHANGHAI
SET
MULTI_USER
GO
USE master
GO
sp_configure
'show advanced options'
,1
GO
RECONFIGURE
WITH
OVERRIDE
GO
sp_configure
'xp_cmdshell'
, 1
GO
RECONFIGURE
WITH
OVERRIDE
GO
USE [master]
GO
ALTER
DATABASE
DB_SHANGHAI
SET
OFFLINE
WITH
ROLLBACK
IMMEDIATE
GO
EXEC
xp_cmdshell
'RENAME "X:\DATA\DB_BEIJING.mdf", "DB_SHANGHAI.mdf"'
GO
EXEC
xp_cmdshell
'RENAME "W:\Log\DB_BEIJING_log.ldf", "DB_SHANGHAI_log.ldf"'
GO
USE [master]
GO
ALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE (
NAME
=DB_SHANGHAI, FILENAME =
'X:\DATA\DB_SHANGHAI.mdf'
)
GO
ALTER
DATABASE
DB_SHANGHAI
MODIFY
FILE (
NAME
=DB_SHANGHAI_log, FILENAME =
'W:\LOG\DB_SHANGHAI_log.ldf'
)
GO
ALTER
DATABASE
DB_SHANGHAI
SET
ONLINE
USE master
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
'DB_SHANGHAI'
)
GO
/*
Logical
Name
DB File Path File Type State
DB_SHANGHAI X:\DATA\DB_SHANGHAI.mdf
ROWS
ONLINE
DB_SHANGHAI_log W:\LOG\DB_SHANGHAI_log.ldf LOG ONLINE
*/
USE master
GO
sp_configure
'xp_cmdshell'
, 0
GO
RECONFIGURE
WITH
OVERRIDE
GO
sp_configure
'show advanced options'
,0
GO
RECONFIGURE
WITH
OVERRIDE
GO