修改Sql Server数据库名

参考SQL Server联机丛书的 sp_renamedb与sp_rename
一、更改数据库名

sp_renamedb
更改数据库的名称。

语法
sp_renamedb 
[ @dbname = ] ' old_name ' ,
     
[ @newname = ] ' new_name ' 
 
参数
 
[ @dbname = ] ' old_name ' 
 
是数据库的当前名称。old_name 为 sysname 类型,无默认值。

 
[ @newname = ] ' new_name ' 
 
是数据库的新名称。new_name 必须遵循标识符规则。new_name 为 sysname 类型,无默认值。

返回代码值
 
0 (成功)或非零数字(失败)

权限
只有 sysadmin 和 dbcreator 固定服务器角色的成员才能执行 sp_renamedb。

示例
下例将数据库 accounting 改名为 financial。

 
EXEC sp_renamedb ' accounting ' , ' financial '

或是

原数据库的逻辑文件名和物理文件名不一致

在 SQL Server 的企业管理器中,似乎不能直接更改数据库名称,如果要更改,最方便的是在查询分析器中运行:
alter database 原数据库名称
modify name=新数据库名称

SQL Server 中,数据库还原时可以更改物理文件名,也可以分离数据库,直接更改 mdf 的文件名再附加,但更改逻辑文件名似乎不那么直观。

在查询分析器里运行:
alter database 数据库名称
modify file(name=原逻辑文件名, newname=新逻辑文件名)

这样就可以更改逻辑文件名了,由于 SQL Server 有数据文件和日志文件,所以数据文件和日志文件的逻辑文件名都要更改的话,就得写两个类似于上述的语句。

 

二、更改表名或列名

 sp_rename [ @objname = ] ' object_name ' ,
     
[ @newname = ] ' new_name ' 
     
[ , [ @objtype = ] ' object_type ' ]

 
///////////////////////////////////////////// 
 A. 重命名表
 下例将表 customers 重命名为 custs。

 
EXEC sp_rename ' customers ' , ' custs ' 
 
 B. 重命名列
 下例将表 customers 中的列 contact title 重命名为 title。

 
EXEC sp_rename ' customers.[contact title] ' , ' title ' , ' COLUMN ' 

 

 

 

 

 

posted @ 2009-05-15 15:36  X-Jonney  阅读(695)  评论(0编辑  收藏  举报