1 用USE MASTER等语句将你自己的数据库连接转移到你要恢复的数据库以外的数据库上 2 用SP_WHO或者SELECT * FROM MASTER..SYSPROCESSES察看服务器活动进程,将连接在你要恢复的数据库上的进程用KILL PROCESS杀掉3 scm 实用工具(服务控制管理器)可以创建、修改、启动、停止或暂停在 Microsoft Windows NT® 和 Microsoft Windows® 2000 下运行的任何 Microsoft® SQL Server™ 2000 服务。在 Microsoft Windows 98 下,scm 实用工具可以启动、停止或暂停等效的 SQL Server 应用程序。参见SQL SERVER帮助SCM -ACTION X//X=1启动 2重新启动 6停止
我也是用Delphi做的一个数据库备份与恢复的 希望能有借鉴作用: // 数据备份 procedure TBackupdata.Button1Click(Sender: TObject); var bakpath:string; begin bakpath:=edit1.text ; //备份的路径 with query1 do begin close; sql.clear; sql.add('exec Backupcar :bakpath'); params[0].asstring:=bakpath; execsql; end; showmessage('数据备份成功!'); end; //数据恢复、导入 procedure Trestoredata.BitBtn2Click(Sender: TObject); var datapath:string; begin datapath:=edit1.text ; with query1 do begin close; sql.clear; sql.add('exec restorecar :datapath'); params[0].asstring:=datapath; execsql; end; showmessage('数据恢复成功!'); end;以上是基于SQL Server做的一个小程序 出现你说的那种问题,数据还在使用,说明还有用户连接在这个数据库上 按以下步骤来进行: 1 不要将程序连接到你要恢复的数据库上,你可以用use master 2 你可以用sp_who或者 select dbname = case when dbid = 0 then null when dbid <> 0 then db_name(dbid) end, loginame from master..sysprocesses where hostname is not null group by dbid,loginame 等列出现在正在使用的进程/用户 3 调用kill proccess干掉他们(这样可以确保数据库不在使用中) 4 然后再进行恢复
2 用SP_WHO或者SELECT * FROM MASTER..SYSPROCESSES察看服务器活动进程,将连接在你要恢复的数据库上的进程用KILL PROCESS杀掉3 scm 实用工具(服务控制管理器)可以创建、修改、启动、停止或暂停在 Microsoft Windows NT® 和 Microsoft Windows® 2000 下运行的任何 Microsoft® SQL Server™ 2000 服务。在 Microsoft Windows 98 下,scm 实用工具可以启动、停止或暂停等效的 SQL Server 应用程序。参见SQL SERVER帮助SCM -ACTION X//X=1启动 2重新启动 6停止
希望能有借鉴作用:
// 数据备份
procedure TBackupdata.Button1Click(Sender: TObject);
var
bakpath:string;
begin
bakpath:=edit1.text ; //备份的路径
with query1 do
begin
close;
sql.clear;
sql.add('exec Backupcar :bakpath');
params[0].asstring:=bakpath;
execsql;
end;
showmessage('数据备份成功!');
end;
//数据恢复、导入
procedure Trestoredata.BitBtn2Click(Sender: TObject);
var
datapath:string;
begin
datapath:=edit1.text ;
with query1 do
begin
close;
sql.clear;
sql.add('exec restorecar :datapath');
params[0].asstring:=datapath;
execsql;
end;
showmessage('数据恢复成功!');
end;以上是基于SQL Server做的一个小程序
出现你说的那种问题,数据还在使用,说明还有用户连接在这个数据库上
按以下步骤来进行:
1 不要将程序连接到你要恢复的数据库上,你可以用use master
2 你可以用sp_who或者
select dbname = case
when dbid = 0 then null
when dbid <> 0 then db_name(dbid)
end, loginame from master..sysprocesses where hostname is not null
group by dbid,loginame
等列出现在正在使用的进程/用户
3 调用kill proccess干掉他们(这样可以确保数据库不在使用中)
4 然后再进行恢复
sqlservr [-sinstance_name] [-c] [-dmaster_path] [-f]
[-eerror_log_path] [-lmaster_log_path] [-m]
[-n] [-Ttrace#] [-v] [-x] [-g number] [-O] [-y number]