J3qx

information archive

sp_Restore-everyday.sql

Posted by j3qx на Январь 14, 2017

USE [master]
GO

declare @backpath sysname
declare @dbname sysname

set @dbname = ‘dbname’

declare @spid int
select @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname)
while @spid is not null begin
execute (‘kill ‘ + @spid)
select @spid = min(spid) from master.dbo.sysprocesses where dbid = db_id(@dbname) and spid > @spid
end

if (exists (select name
from master.dbo.sysdatabases
where name = @dbname))
begin
exec(‘drop database [‘ + @dbname + ‘]’)
end

—тут заменить C:\share на локальный путь на сервере
set @backpath = N’C:\temp\dbname.bak’

—Следующий блок определяется для базы персонально.
—Имена фалов БД (N’DB-MAIN-01-MDF1′..) прицнипиальны смотрятся в свойствах базы.
—В этом примере 1 файл данных и 1 лог. Остальные закоментированы. Они тоже для примера.
—тут определить фалы, которое занимает база для переформотирования имени на диске
declare
@DB_MAIN_01_MDF1 sysname
,@DB_MAIN_01_LOG1 sysname

set @DB_MAIN_01_MDF1 = N’C:\Test\’+@dbname+N’.mdf’
set @DB_MAIN_01_LOG1 = N’C:\Test\’+@dbname+N’_log.ldf’

—собственно команда восстановления,
RESTORE DATABASE @dbname
FROM DISK = @backpath WITH FILE = 1
, MOVE N’dbname’ TO @DB_MAIN_01_MDF1
, MOVE N’dbname_log’ TO @DB_MAIN_01_LOG1
, NOUNLOAD, STATS = 5

—Следующий блок перевод базы в симпл, и шринк. Необязательно.
declare @SQLQ nvarchar(255)
set @SQLQ = ‘ALTER DATABASE [‘ + @dbname + ‘] SET RECOVERY SIMPLE;’
EXECUTE(@SQLQ)
DBCC SHRINKDATABASE(@dbname)

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: