如果是SQL Server 2005可以直接右键重命名,但是SQL Server 2000中不能直接改,可以用sp_renamedb。
1.方法一(物理法): 把Old数据库改为New数据库
打开“企业管理器”
找到 Old数据库--》右键--》所有任务--》分离数据库
然后到C:Program FilesMicrosoft SQL ServerMSSQLData下找到Old_Data.mdf和 Old_log.ldf
把Old_Data换成你想要的名字例如New.mdf、New.ldf
然后到企业管理器,找到 数据库--》右键--》所有任务--》附加数据库--》在弹出的对话框里找到刚才你改名的文件New.mdf
这时您可以看到“原数据库文件名”“当前文件位置”,在“当前文件位置”前会有大红X,然后手动修改“当前文件位置”的路径里的文件名,改为 New.MDF,New.LDF,大红X消失,“在附加为:”里边写上你想使用的数据库名New,"指定数据库所有者:"里写上这个数据库的所有者,这个如果写错了,以后很难改的(至少一般人觉得很难改)。
OK搞定。
以前就写到上面这一点,好像客户也没说什么,感觉应该是可以的,不过今天发现这个问题:
虽然现在的数据库文件名显示的是我们想要的“New”,但此时的逻辑文件名还没有修改,还是原来的那个“Old_Date”,打开企业管理器--》在这个数据库上点右键属性--》数据文件 下的当前数据库的位置路径前的 文件名 还是原来那个,事物日志文件 下的 文件名也还是以前的文件名,也就是说还没有彻底成功,所以我们还得按如下方法操作--》
工具--》SQL 查询分析器--》然后输入:
Alter DataBASE New MODIFY FILE(NAME='Old_Data',NEWNAME='New_Data') Alter DataBASE New MODIFY FILE(NAME='Old_Log',NEWNAME='New_Log')
--》按F5运行便可。
OK,一般还要给用户设置空间大小,设一下就可以了。
2.方法二(存储过程法):
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'
语法 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'