我有一个TestDB数据库,我把它重命名成功,
但是再创建TestDB就报错了,sp_rename 'TestDB', 'TestDB_drop'
Create Database 'TestDB'第一个执行成功了,
但是第二句执行报错!
消息 1802,级别 16,状态 4,第 1 行
CREATE DATABASE 失败。无法创建列出的某些文件名。请查看相关错误。
消息 5170,级别 16,状态 1,第 1 行
无法创建文件 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\TestDB.mdf',因为它已存在。请更改文件路径或文件名,然后重试此操作。
该怎么改正该错误?

解决方案 »

  1.   

    参考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 ' 
     二、更改表名或列名 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 ' 
      

  2.   

    哦,是笔误,是sp_renamedb,但是还是报错
    SQL 语句如下,大家可以执行试一下:create database [testdb]
    sp_renamedb 'testdb', 'test00'
    create database [testdb]
      

  3.   

    找到[testdb]所在目錄,將其刪除~~
      

  4.   

    1、选中你的TestDB;所有任务/生成sql脚本;
    2、创建你的新的空db(testdb2);然后执行生成的sql脚本这样就可以建一个跟原来testdb一模一样的数据库testdb2了,而且testdb2不包含数据
      

  5.   

    你只是把它的数据库名改了,它的物理文件名还是原来的。
    如果你要把它的物理文件名也要改掉,看以下代码:
    USE master
    GO
    BACKUP DATABASE pubs 
       TO DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\pubs.bak'
    RESTORE FILELISTONLY
       FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\pubs.bak'
    RESTORE DATABASE pubs_Test
       FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\pubs.bak'
       WITH NORECOVERY,
       MOVE 'pubs' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_Test_data.mdf', 
       MOVE 'pubs_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_Test_log.ldf'
    GO
    drop DATABASE pubs
    go
    Create DataBase pubs