直接把库文件两个文件,拷到你的新机器上,拷的时候停一下SQL SERVER,再到新服务器上附加一下数据库就可以,比你备份再恢复简单多了。

解决方案 »

  1.   

    把bak文件copy到dataserver上,再用resore命令恢复一下就可以了,但要注意文件的路径问题,可以用RESTORE FILELISTONLY看一下具体的路径
      

  2.   

    如果是备份文件,如下操作:
    如果用ENTERPRISE MANAGER恢复,具体操作步骤如下:
    1、打开ENTERPRISE MANAGER,展开到DATABASES。
    2、在DATABASES上点右键,“所有任务”中选“RESTORY DATABASE”
    3、在GENERAL标签页中选择“FROM DEVICE”,再点击“SELECT DEVICE”
    4、在出现的窗口中点击“ADD”,再在窗口中选择“FILE NAME”,点击...按钮
    5、选中您所创建的备份文件,即可成功。
    如果用SQL语句,我只会通过*.mdf建立数据库,如下:
    首先创建一个与原来数据库同名的数据库、LOGIN,然后将DATA文件夹中的*.mdf、*.ldf删除,将你以前备份的*.mdf考到DATA文件夹中,然后在用SQL语句:
    exec sp_detach_db @db_name='dbname', 
       'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf', 
    exec sp_attach_single_file_db 'dbname',
      'c:\Program Files\Microsoft SQL Server\MSSQL\Data\example.mdf',
      

  3.   

    谢谢各位老大的发言,不过看来各位没明白我的意思
    我"只知道该数据库服务器的名称",其他一概不知,更别说将文件拷贝过去了,或者说我对该数据库服务器所在的机器不享有任何权限,但我对该数据库服务器有完全的权限(包括创建,备份恢复数据库)。
    我不能直接拷贝任何文件到服务器上去,但是需要将数据库文件放到该服务器上,所以只能求助于数据库服务器来完成这个功能,就是不知道能不能做到。因为要在程序中完成,所以需要使用SQL语句。
    目前我知道最好的做法是用 "create database 数据库名" 创建数据库,这样一来数据库文件就会放在缺省位置,但是进行恢复不知道怎么办
    如果不用move 似乎不行,而用move 需要给文件指定位置,于是问题又来了,烦啊,难道真的做不到吗?
      

  4.   

    RESTORE FILELISTONLY 
        FROM DISK = 'mydata.bak'
      

  5.   

    *************************************************************
    RESTORE FILELISTONLY 
        FROM DISK = 'mydata.bak'
    *************************************************************????我不需要看文件,我都知道了,再说知道了也没用。
    难道没人遇到过跟我一样的问题吗?
    或者换一种方法,有没有人能告诉我怎样用SQL语句判断一个正在运行的数据库服务器是不是本机的数据库,感谢。
      

  6.   

    用xp_cmdshell 执行net命令试试