Procédure stockée pour restaurer une base
Salut,
J'ai fait une procédure stockée qui me permet de restaurer une base en lui passant le nom en paramètre.
Le problème c'est que quand je la lance, j'ai le résultat suivant :
Code:
Impossible de remplacer le fichier 'D:\MSSQL\Data\MSSQL\Data\ext_projets.MDF'. il est utilisé par la base de données '@Database_Name'.
Voici ma procédure stockée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| CREATE PROCEDURE dbo.RestoreDataBase
(
@Database_Name nvarchar(128)
)
AS
BEGIN
declare @Reset nvarchar(128)
declare @File_Name nvarchar(128)
declare @MoveData_Name nvarchar(128), @ToData_Name nvarchar(128)
declare @MoveLog_Name nvarchar(128), @ToLog_Name nvarchar(128)
declare @FullRequest varchar(400)
set @Reset = 'master.dbo.killdbspids '''+@Database_Name+''''
set @File_Name = '''D:\recup_idefix_sql\' + @Database_Name + '.dat'''
set @MoveData_Name = 'N'+''''+@Database_Name+'_Data'''
set @ToData_Name = 'N'+'''D:\MSSQL\Data\MSSQL\Data\'+@Database_Name+'.MDF'''
set @MoveLog_Name = ''''+@Database_Name+'_Log'''
set @ToLog_Name = '''D:\MSSQL\Data\MSSQL\Data\'+@Database_Name+'_log.LDF'''
print @File_Name
print @MoveData_Name
print @ToData_Name
print @MoveLog_Name
print @ToLog_Name
--exec master.dbo.killdbspids @Database_Name
set @FullRequest =
'RESTORE DATABASE
['+@Database_Name+']
FROM
DISK = '+@File_Name +'
WITH
FILE = 1,
MOVE '+@MoveData_Name+'
TO '+@ToData_Name+',
MOVE '+@MoveLog_Name+'
TO '+@ToLog_Name+',
NOUNLOAD,
REPLACE,
STATS = 10'
print @Reset
print @FullRequest
exec sp_sqlexec @Reset
exec sp_sqlexec @FullRequest
END
GO |
Savez vous pourquoi?
Merci d'avance
Nixonne