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;