关于用sql Server备份和还原数据库

todouwang 2005-05-26 11:14:19
资料,例子都行,多谢!
...全文
172 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zspdecember 2005-08-01
  • 打赏
  • 举报
回复
起名很難同學很愛回貼﹐我今天看的貼里5個已經有3個是你回過的了。
值得學習
shxng 2005-06-10
  • 打赏
  • 举报
回复
收藏
todouwang 2005-05-26
  • 打赏
  • 举报
回复
如果数据库是共享的,正被用的话,就不能操作,有什么解决办法?
todouwang 2005-05-26
  • 打赏
  • 举报
回复
3Q
todouwang 2005-05-26
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoCommand1.CommandText:='backup database test to disk=:A with init';
adocommand1.Parameters.ParamByName('A').Value:='d:\TestBackUp\'+'dbtest.dat';
adocommand1.Execute;

end;
这样可以备份,但程序停止响应,还要处理些什么来结束这程序?
yeeyee 2005-05-26
  • 打赏
  • 举报
回复
private
FPath:string;
//路径,注意本机是不是服务器。 disk='\\machine\share\data.bak' ,这种形式。

procedure TDBBackUpRestore.BackUpDB;
begin
with DMMain.QryComm do
begin
Close;
SQL.Clear;
SQL.Add('Bakcup Database '+FDBName+' to disk= '+FPath+' with init');
Execute;
Close;
end; // with
end;

procedure TDBBackUpRestore.ReStoreDB;
begin
with DMMain.QryComm do
begin
Close;
SQL.Clear;
SQL.Add('ReStore DataBase '+FDBName+' From Disk= '+FPath);
Execute;
Close;
end; // with
end;
todouwang 2005-05-26
  • 打赏
  • 举报
回复
这个sql该写在query的sql里么?
pengxuan 2005-05-26
  • 打赏
  • 举报
回复
//备份
AdoCommand.CommandText:='backup database dbname to disk='''+filename+'''with init';
//恢复
AdoCommand.CommandText:='restor database dbname from disk='''+filename+'''';
soney12 2005-05-26
  • 打赏
  • 举报
回复
SQL Server自带有这样的功能
cdsgajxlp 2005-05-26
  • 打赏
  • 举报
回复
这三个函数能解决您的问题
楼主给分吧
cdsgajxlp 2005-05-26
  • 打赏
  • 举报
回复
procedure ClearMSSQLUser(DBname : String);
var
SelectQuery : TAdoQuery;
ClearProUser : TAdoQuery;
begin
try
SelectQuery :=TAdoQuery.Create(nil);
ClearProUser:=TAdoQuery.Create(nil);
SelectQuery.Connection :=SqlConnection;
ClearProUser.Connection:=SqlConnection;
SelectQuery.SQL.Clear;
ClearProUser.SQL.Clear;
SelectQuery.SQL.Add('select * from dbo.sysobjects where '+
'id = object_id(N''[dbo].[p_killspid]'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1');
SelectQuery.Open;
if SelectQuery.Eof then
begin
SqlCommand.CommandText:='create proc p_killspid ' +
'@dbname sysname ' +
'as '+
'declare @s nvarchar(1000) ' +
'declare tb cursor local for ' +
'select s=''kill ''+cast(spid as varchar) '+
'from master..sysprocesses '+
'where dbid=db_id(@dbname) '+
'open tb '+
'fetch next from tb into @s '+
'while @@fetch_status=0 '+
'begin '+
' exec(@s) '+
' fetch next from tb into @s '+
'end '+
'close tb '+
'deallocate tb';
SqlCommand.Execute;
end;
SqlCommand.CommandText:='exec p_killspid '''+DBname+'''';
SqlCommand.Execute;
finally
freeandnil(SelectQuery);
freeandnil(ClearProUser);
end;
end;
cdsgajxlp 2005-05-26
  • 打赏
  • 举报
回复
200分,呵呵
Procedure HYUANDatebaseOk(DBname ,SoureName : String);
begin
with SqlCommand do
begin
CommandText:='use Master';//
Execute;
ClearMSSQLUser(DBname);
CommandText:='execute sp_helpdevice';//系统存储过程
Execute;
CommandText:='Restore database '+DBname+' From disk='''+SoureName+''' with replace';
Execute;
end;
end;//DBname 备份库名称 //SoureName 那个盘

Procedure BakUpdatebameOk(BkDBname,MDFileStr : String);
begin
with SqlCommand do
begin
CommandText:='use Master';
Execute;
CommandText:='execute sp_helpdevice';//系统存储过程
Execute;
CommandText:='backup database '+BkDBname+' to disk='''+MDFileStr+''' with init';
Execute;
CommandText:='Use '+BkDBname;
Execute;
end;
end;

todouwang 2005-05-26
  • 打赏
  • 举报
回复
sp_addumpdevice 'disk',jasonbak ,'C:\jason.bak'
--备份
backup database northwind to jasonbak
//为什么这个备份过几秒就会自动消失?
mmkill 2005-05-26
  • 打赏
  • 举报
回复
用sqlserver本身的备份功能最好了,不要写代码
yimily 2005-05-26
  • 打赏
  • 举报
回复
backup
restore
todouwang 2005-05-26
  • 打赏
  • 举报
回复
USE master EXEC sp_addumpdevice 'disk', 'MyNwind_1',
DISK = 'd:\TestBackUp\MyNwind_1.dat' BACKUP DATABASE test TO MyNwind_1
上面的代码哪里有问题?disk附近有什么错误?

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧