Z
zjj_001
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了个存储过程,如下所示:
CREATE PROCEDURE RestoreDatabase(@DatabaseName varchar(30),@AbsolutPath varchar(120) )AS
declare @DataFile varchar(30),@LogFile varchar(30),@DataPath varchar(120),@LogPath varchar(120)
begin
Restore database @DatabaseName from disk=@AbsolutPath with replace
if @@error <>0
begin
select @DataFile=name,@DataPath=filename from sysfiles where fileid=1
select @LogFile=name,@LogPath=filename from sysfiles where fileid=2
end
用来处理在程序中恢复某个SQL实例的所有数据库,但在这个存储过程里,在恢复之前,我
想得到该数据库中sysfiles表中的某些数据,于是需在sysfiles 表名中加前缀,比如上述语
句将改成:
select @DataFile=name,@DataPath=filename from @DatabaseName..sysfiles where fileid=1
但以上语句当然不能通过,我的意思是能不能有这种实现方式,因为每个数据库均有这个表:
sysfiles ,能不能在前面加个数据库名,而这数据库名是需要动态改变的
请各位高手Ci教
CREATE PROCEDURE RestoreDatabase(@DatabaseName varchar(30),@AbsolutPath varchar(120) )AS
declare @DataFile varchar(30),@LogFile varchar(30),@DataPath varchar(120),@LogPath varchar(120)
begin
Restore database @DatabaseName from disk=@AbsolutPath with replace
if @@error <>0
begin
select @DataFile=name,@DataPath=filename from sysfiles where fileid=1
select @LogFile=name,@LogPath=filename from sysfiles where fileid=2
end
用来处理在程序中恢复某个SQL实例的所有数据库,但在这个存储过程里,在恢复之前,我
想得到该数据库中sysfiles表中的某些数据,于是需在sysfiles 表名中加前缀,比如上述语
句将改成:
select @DataFile=name,@DataPath=filename from @DatabaseName..sysfiles where fileid=1
但以上语句当然不能通过,我的意思是能不能有这种实现方式,因为每个数据库均有这个表:
sysfiles ,能不能在前面加个数据库名,而这数据库名是需要动态改变的
请各位高手Ci教