GoncharovNN
10/3/2019 - 11:56 PM

Востановление БД из последней копии #1Script

Востановление БД из последней копии #1Script

#Использовать sql
#Использовать cmdline

Процедура ВосстановитьБД(ИмяБазы)
	Соединение = Новый Соединение;
	Соединение.ТипСУБД = Соединение.ТипыСУБД.MSSQLServer;
	Соединение.Порт = 1433;
	Соединение.Сервер = "localhost";
	Соединение.ИмяБазы = "master";
	Соединение.ИмяПользователя = "user1c";
	Соединение.Пароль = "Flvby007";
	Если Не Соединение.Открыть() Тогда
		Сообщить("Соединение не открыто");
	иначе 
		Сообщить("Соединение открыто!!!");
	КонецЕсли;

	Запрос = Новый Запрос();
	
	Запрос.Текст ="DECLARE @backup_filename varchar(100);
	|DECLARE @files table (ID int IDENTITY, FileName varchar(100));
	|insert into @files execute xp_cmdshell 'dir C:\Goncharov\ /b';
	|set @backup_filename = 'C:\Goncharov\' + (select top 1  FileName from @files where FileName  Like 'TEST_GK_SSL_Goncharov%' order by ID desc);
	|if db_id('["+ИмяБазы+"]') is not null  ALTER DATABASE ["+ИмяБазы+"] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
	|RESTORE DATABASE ["+ИмяБазы+"] FROM  DISK = @backup_filename  WITH  FILE = 1,   NOUNLOAD,  REPLACE;
	|ALTER DATABASE ["+ИмяБазы+"] SET RECOVERY SIMPLE WITH NO_WAIT;
	|ALTER DATABASE ["+ИмяБазы+"] SET MULTI_USER;";
	Запрос.УстановитьСоединение(Соединение);

	Запрос.Таймаут = 60*10;

	Запрос.ВыполнитьКоманду();
	
КонецПроцедуры


ВосстановитьБД("TEST_GK_SSL_Goncharov");