SQLServer如何完整的修改一个数据库的名称

SQLServer如何完整的修改一个数据库的名称,第1张

数据库为原名称为DB_BEIJING,需要修改成DB_SHANGHAI

nzperfect

2012.12.19*/

--判断是否存在同名的数据库,以防止误删除USE

masterGOIF

EXISTS

(SELECT

name

FROM

sys.databases

WHERE

name

=

N'DB_BEIJING')BEGINRAISERROR('请注意:数据库已存在!',15,1)RETURN--DROP

DATABASE

DB_BEIJINGENDGOUSE

masterGO--创建测试数库

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

--以下为修改过程

--step

1

:

修改数据库名称USE

masterGOALTER

DATABASE

DB_BEIJING

SET

SINGLE_USER

WITH

ROLLBACK

IMMEDIATEGOEXEC

master..sp_renamedb

'DB_BEIJING','DB_SHANGHAI'GOALTER

DATABASE

DB_SHANGHAI

SET

MULTI_USERGO

--step

2

:

查看修改名称后的数据库逻辑名及物理文件名USE

masterGOSELECT

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*/

--step

3

:

修改数据库逻辑文件名称USE

masterGOALTER

DATABASE

DB_SHANGHAI

SET

SINGLE_USER

WITH

ROLLBACK

IMMEDIATEGOALTER

DATABASE

DB_SHANGHAI

MODIFY

FILE

(NAME=N'DB_BEIJING',

NEWNAME=N'DB_SHANGHAI')GOALTER

DATABASE

DB_SHANGHAI

MODIFY

FILE

(NAME=N'DB_BEIJING_log',

NEWNAME=N'DB_SHANGHAI_log')GOALTER

DATABASE

DB_SHANGHAI

SET

MULTI_USERGO

--step

4

:

修改数据库物理文件名称之前先打开xp_cmdshell支持USE

masterGOsp_configure

'show

advanced

options',1GORECONFIGURE

WITH

OVERRIDEGOsp_configure

'xp_cmdshell',

1GORECONFIGURE

WITH

OVERRIDEGO

--step

5

:

重命名数据库物理文件名称

USE

[master]GOALTER

DATABASE

DB_SHANGHAI

SET

OFFLINE

WITH

ROLLBACK

IMMEDIATEGOEXEC

xp_cmdshell

'RENAME

X:\DATA\DB_BEIJING.mdf,

DB_SHANGHAI.mdf'GOEXEC

xp_cmdshell

'RENAME

W:\Log\DB_BEIJING_log.ldf,

DB_SHANGHAI_log.ldf'GO

--step

6

:

将数据库逻辑名称指向新的物理文件,并将数据库online

USE

[master]GOALTER

DATABASE

DB_SHANGHAI

MODIFY

FILE

(NAME

=DB_SHANGHAI,

FILENAME

=

'X:\DATA\DB_SHANGHAI.mdf')GOALTER

DATABASE

DB_SHANGHAI

MODIFY

FILE

(NAME

=DB_SHANGHAI_log,

FILENAME

=

'W:\LOG\DB_SHANGHAI_log.ldf')GOALTER

DATABASE

DB_SHANGHAI

SET

ONLINE

--step

7

:

查看全部修改完成后的数据库情况USE

masterGOSELECT

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

一、未使用的数据库

改名方法如下:

1、未使用的数据库改名比较方便,找到你要更改的数据库,右键选择【重命名】。

2、然后将你想要更改的名字写好,然后点击一下旁边的空白栏。

3、然后你就发现数据库的名称已经改好了。

二、使用中的数据库改名方法如下:

1、使用中的数据库你在使用这种方法显然是不合适,你用这种方法更改数据库的名字之后会提示你无法重命名数据库。

2、这时还是同样的右键你要改名的数据库,选择【属性】按钮。

3、然后在数据库属性左侧菜单栏中选择【选项】按钮。

4、然后在【状态】栏目下有一项限制访问选项,默认的是MULTI_USER,意为多用户模式,然后你将其更改为【SINGLE_USER】单用户模式,点击确定即可。

5、然后你在使用上面的方法更改数据库的名称会发现数据库改名成功了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6923166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存