SQL - запрос и регламент для обрезки файла транзакций (trn)
Текст запроса SQL.
- Нужно только поменять имена баз и файлов транзакций
- в качестве имени файла для обрезки (шринка) нужно указываеть не то как файл физически называеться, а его лоическое имя в SQL
-------------------------------------------
-- НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ
-- Имя базы данных
DECLARE @DBName varchar(100) = 'ViatecUT2'
-------------------------------------------
-- СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ
DECLARE @SQLString NVARCHAR(4000)
DECLARE @subject as NVARCHAR(1000) = ''
DECLARE @finalmassage as NVARCHAR(4000) = ''
-------------------------------------------
-- ТЕЛО СКРИПТА
-- Переводим базы в простую модель восстановления
SET @SQLString = 'ALTER DATABASE ' + @DBName + ' SET RECOVERY SIMPLE WITH NO_WAIT;'
PRINT @SQLString
BEGIN TRY
EXEC sp_executesql @SQLString
END TRY
BEGIN CATCH
-- Ошбика выполнения операции
SET @subject = 'ОШИБКА перевода базы данных ' + @DBName + ' в простую модель восстановоления '
SET @finalmassage = 'ОШИБКА перевода базы данных ' + @DBName + ' в простую модель восстановоления ' + CHAR(13) + CHAR(13)
+ 'Код ошибки: ' + CAST(ERROR_NUMBER() as nvarchar(10)) + CHAR(13) + CHAR(13)
+ 'Текст ошибки: ' + ERROR_MESSAGE() + CHAR(13) + CHAR(13)
+ 'Текст T-SQL:' + CHAR(13) + @SQLString
END CATCH;
-- Запускаем сжатие базы данных
USE [ViatecUT2]
GO
DBCC SHRINKFILE (N'CFin831_log',0,TRUNCATEONLY)
GO
-- Переводим базы в полную модель восстановления
-------------------------------------------
-- НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ
-- Имя базы данных
DECLARE @DBName varchar(100) = 'ViatecUT2'
-------------------------------------------
-- СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ
DECLARE @SQLString NVARCHAR(4000)
DECLARE @subject as NVARCHAR(1000) = ''
DECLARE @finalmassage as NVARCHAR(4000) = ''
-------------------------------------------
-- ТЕЛО СКРИПТА
SET @SQLString = 'ALTER DATABASE ' + @DBName + ' SET RECOVERY FULL;'
PRINT @SQLString
BEGIN TRY
EXEC sp_executesql @SQLString
END TRY
BEGIN CATCH
-- Ошбика выполнения операции
SET @subject = 'ОШИБКА перевода базы данных ' + @DBName + ' в полную модель восстановоления '
SET @finalmassage = 'ОШИБКА перевода базы данных ' + @DBName + ' в полную модель восстановоления ' + CHAR(13) + CHAR(13)
+ 'Код ошибки: ' + CAST(ERROR_NUMBER() as nvarchar(10)) + CHAR(13) + CHAR(13)
+ 'Текст ошибки: ' + ERROR_MESSAGE() + CHAR(13) + CHAR(13)
+ 'Текст T-SQL:' + CHAR(13) + @SQLString
END CATCH;