在通过SQL附加数据库的时候,它会显示出该数据库之前的名称及要附加的名称,如果我不使用SQL企业管理器来附加,使用 sp_attach_db过程来附加,如何能获得数据库之前的名称呢?

解决方案 »

  1.   

    你的MDF存在哪里你应该知道吧 它的名字你肯定知道的
      

  2.   

    没听说过可以获得用sp_attach_db 是直接赋予新的数据库名
    不过你可以参考.mdf的文件名,一般前面一部分就是数据库名
    比如 ,test_data.mdf
    那可能数据库名就是test
    sp_attach_db命令格式
    sp_attach_db '数据库名',
    '路径\mdf文件名加后缀名',
    '路径\ldf文件名加后缀名'
      

  3.   

    sql server 保存你使用过的数据库的名称,所以无法获得数据库之前的。
      

  4.   

    假设mdf文件名为 AA.mdf 但是在库里并不是这个名称。在库里叫 data_AA之类的(只是举例)
    我见过别的附加工具可以的,请问大侠如何获取
      

  5.   

    restore filelistonly from ....
      

  6.   


    restore   Filelistonly   from   disk='C:\2011\ufdata.mdf'以下是提示
    消息 3241,级别 16,状态 0,第 1 行
    设备 'C:\2011\ufdata.mdf' 上的媒体簇的结构不正确。SQL Server 无法处理此媒体簇。
    消息 3013,级别 16,状态 1,第 1 行
    RESTORE FILELIST 正在异常终止。
      

  7.   

    引用 9 楼 happyflystone 的回复:
    restore filelistonly from ....
    restore Filelistonly from disk='C:\2011\ufdata.bak' 
    从备份文件.bak看
      

  8.   

    - - 是没有备份文件的
    通过mdf可以吗
      

  9.   

    你这又不是备份文件,而是数据库文件的附加,数据库逻辑名并不在分离的文件里,默认只是把mdf文件名作为数据库名,如果你不知道数据库文件的名称及路径,是根本没办法去附加的.
      

  10.   


    假设我用create  databse  testDB 创建了一个数据库,名称为testDB
    而后我在企业管理器中把testDB库名称改为MyDbTest,然后分离
    然后使用附加工具,找到物理文件testdb.mdf来附加,其自动附加为MyDbTest,请问这是怎么做到的?
    它怎么知道之前这个库叫MyDbTest??附加工具在我的Dbank网盘,请大侠帮忙看看
    http://dl.dbank.com/c0di0a7ae0