如果是SQL Server 2005可以直接右键重命名,但是SQL Server 2000中不能直接改,可以用sp_renamedb。
1.方法一(物理法): 把Old数据库改为New数据库 打开“企业管理器” 找到 Old数据库--》右键--》所有任务--》分离数据库 然后到C:\Program Files\Microsoft SQL Server\MSSQL\Data下找到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'