Restaurar backup, jdbc, SQLSERVER

Boa tarde, estou com um probleminha no meu trabalho da faculdade.

Estou tentando através de uma stored procedure restaurar um arquivo de backup mas o banco não está permitindo, a msg da exception é “Instrução ALTER DATABASE não permitida em transação com várias instruções.”.

Minha procedure:

[code]alter procedure dbo.usp_restore (@id int)
as
begin

declare @arquivo nvarchar(80)

select @arquivo = caminho from [ControleFinanceiroFamiliar].[dbo].[Backups] where id = @id
print @arquivo
ALTER DATABASE [ControleFinanceiroFamiliar] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE [ControleFinanceiroFamiliar] FROM  DISK = @arquivo WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 5
ALTER DATABASE [ControleFinanceiroFamiliar] SET MULTI_USER

end[/code]

Alguém pode me ajudar, detalhe pelo Management Studio a sp roda ok.