程序中数据库还原不能成功,在企业管理器中还原没有有关问题

程序中数据库还原不能成功,在企业管理器中还原没有问题
在应用程序中添加新功能,数据还原命令如下:
SQL code

use master alter database databasename set offline WITH ROLLBACK IMMEDIATE
restore database databasename from disk='D\aaa.dat' with REPLACE'
alter database database set online with rollback immediate


执行无法完成
用同一备份文件在SQL SERVER2000企业管理器中做还原,没有问题。
大家有谁遇到过哦这样的问题,我们共同探讨一下。

------解决方案--------------------
在程序中还原不成功?

是不是你的程序已经是连接此数据库了,如果是,那肯定不行的,还原要求断开所有的连接才行
你可以把此还原的功能独立出来做成exe,不要集成在程序中,还原的时候关掉所有连接

关掉所有连接:
select spid from sysprocesses where dbid=db_id('数据库名')
得到所有的连接列表spid(都是数字),然后逐个执行kill spid

------解决方案--------------------
sql服务器端和客户端还原都是可以的。
我这边遇到个2000和2008兼容性的问题,不知道大家有没有遇到,
delphi备份2000的数据库,还原2000的没问题,但是还原成2008的数据库,还原不了,这个如何解决呢?
------解决方案--------------------
可能是 数据库备份 有问题吧,
或者是高版本的MSSQL备份不能恢复到低版本的MSSQL数据库中的
------解决方案--------------------
怎么个情况,MSSQL数据库都是向下兼容的
如MSSQL2008兼容MSSQL2005+MSSQL2000
而MSSQL2005兼容MSSQL2000,不兼容MSSQL2008数据库