restore database db
from disk='f:\db.bak' 光盘
with NORECOVERY,
move 'db_Data' to 'e:\database\db.mdf',
move 'db_Log' to  'e:\database\db.ldf'不行么?

解决方案 »

  1.   

    sp_attach_db
    将数据库附加到服务器。语法
    sp_attach_db [ @dbname = ] 'dbname'
        , [ @filename1 = ] 'filename_n' [ ,...16 ] 参数
    [@dbname =] 'dbname'要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。 [@filename1 =] 'filename_n'数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。
    示例
    下面的示例将 pubs 中的两个文件附加到当前服务器。EXEC sp_attach_db @dbname = N'pubs', 
       @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf', 
       @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
      

  2.   

    右键数据库-->所有任务-->还原数据库-->写入你想要的新的数据库名字-->从设备-->选择设备-->添加-->选择你的文件-->确定-->确定-->选项-->改为现在的data目录的路径-->OK其中:
    "写入名字"-->不要与现在的冲突了,或选强制恢复
    "改为现在的data目录的路径"-->如默认是"c:\....data\....mdf"而你现在的sql的data目录是d:\....data你就改为d:\...data\...mdf
      

  3.   

    我做的是安装程序,在硬盘上没问题,就是光盘上出错,而且也只有在sql server7.0中出错,2000下可以执行。netcropper(netcropper):你所说的意思我不太明白啊,能不能说说将数据库附加到服务器有什么作用?谢了!
      

  4.   

    我想可以在管理器中去執行吧。不SQL這麼麻煩吧。?
    學習ing
      

  5.   

    我做的系统现在要打包,做成了安装程序。
    后台数据库这一块我的做发是,将原来开发阶段的数据库备份出来生成一个备份文件(bak),然后自己用pb(我的软件系统是PB做的)做了一个数据库恢复的程序用来实现数据库安装。
    我现在要实现的是用户直接插入我做的软件系统光盘,点击数据库安装就可以直接将数据库安装成功(也就是将光盘上的数据库备份文件恢复到用户的sql server中)。我在本机上已经调试ok了,刻录到光盘上试了一下会报错(SQL server 7.0会,2000不会!)
    错误提示如下:
    cannot use the backup file 'G:\server\\firemis' because it was originally formatted with sector size 512 and is now on a device with sector size 2048