在SQL Server2000中用手工备份一数据在C:\AAA\reg.dat,在DELPHI如何写语句还原?
在我自已机子上能通过还原,可到另一台机子上(事先没能这个数据库,全新的SQL SERVER2000)就不行了。。我是这样写的:
backstr:='RESTORE database reg FROM DISK ='''+extractfilepath(application.Exename)+'reg.dat''';是不是少了什么语句或参数???大家帮我!!
在我自已机子上能通过还原,可到另一台机子上(事先没能这个数据库,全新的SQL SERVER2000)就不行了。。我是这样写的:
backstr:='RESTORE database reg FROM DISK ='''+extractfilepath(application.Exename)+'reg.dat''';是不是少了什么语句或参数???大家帮我!!
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY,
MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf',
MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'看一下幫助文件
語句之後再加個 With.... 指定創建的MDF,LDF文件的位置及名稱
哪如果我在我写的哪句SQL 之前用:create database reg
再:RESTORE database reg FROM DISK ='c:\abc\reg.dat'
行吗??是不是可以。。大家说对吗???
例:你备份的时候sql装在d盘,还原的时候sql装在c盘,就回出现这个错误!!解决加WITH指定路径!或动态获得客户的安装路径:
declare @path varchar(200)
select @path = filename from master.dbo.sysfiles
set @path = ltrim(REVERSE(@path))
set @path = REVERSE(substring(@path,CHARINDEX('\',@path),len(@path)))
print @path
比如c:\Program Files\Microsoft SQL Server\MSSQL\Data\reg_data.mdf'
再用RESTORE database reg FROM DISK ='c:\abc\reg.dat'还是路径不对