现在我有一个备份的文件,如MyDataBase.bak,如何通过查询语句取出它的日志和逻辑文件名,请各位大侠赐教

解决方案 »

  1.   

    你在filename中找到以_Log.ldf结尾的前面的就可以了
      

  2.   

    下一个Log Explorer,看一下日志文件即可.它会把一些日常的操作在日志内记录的操作都翻译出来.
      

  3.   

    我就是想达到这种效果:
       我们用SQL SERVER ENTERPRICE MANAGER中可在一个表中单击右键,还原数据库,而后输入文件名,并选择设备;选出一个设备名后,在选项页中,可看到对应的逻辑文件名和移至物理文件名。
       我想能否直接用TSQL语句,直接给出设备名(即备份文件名),求出逻辑文件名和移至物理文件名。我认为既然SQL SERVER ENTERPRICE MANAGER中可以实现,应有对应的TSQL实现,不过比较难吧,不知哪位高手曾经实现过,望赐教。
      

  4.   

    我已找到此TSQL语句:
      RESTORE FILELISTONLY
      返回由备份集内包含的数据库和日志文件列表组成的结果集。
      结果集
    客户端可以使用 RESTORE FILELISTONLY 获得备份集内的文件列表。该信息以结果集的形式返回,在结果集中每个文件占一行。列名 数据类型 描述 
    LogicalName nvarchar(128) 文件的逻辑名称 
    PhysicalName nvarchar(260) 文件的物理名称或操作系统名称 
    Type char(1) 数据文件 (D) 或日志文件 (L) 
    FileGroupName nvarchar(128) 包含文件的文件组名称 
    Size numeric(20,0) 当前大小(以字节为单位) 
    MaxSize numeric(20,0) 允许的最大大小(以字节为单位) 看来可以结帖了.
      

  5.   

    restore filelistonly from disk='...\MyDataBase.bak'
      

  6.   

    偶说详细一点:
    use master
    go
    restore filelistonly from disk='d:\MyDataBase.bak' disk=''指备份存放路径/