ida
DECLARE @a datetime
DECLARE @b nvarchar(10)
declare @bpath nvarchar(max)
SET @a = cast (getdate() as date)
select @b = FORMAT(@a, 'dd.MM.yyyy', 'ru-RU')
set @bpath = '\\srvbackup.ekb.uralbiovet.ru\SQL_BACKUP\ut_b2b_'+@b+'.bak'
BACKUP DATABASE [ut_b2b] TO DISK = @bpath WITH NOFORMAT, INIT, NAME = N'ut_b2b-Полная База данных Резервное копирование', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
GO
USE [master]
GO
/****** Object: DdlTrigger [data_compression] Script Date: 05.02.2021 10:09:58 ******/
CREATE OR ALTER TRIGGER [data_compression]
ON ALL SERVER
AFTER CREATE_TABLE
AS
DECLARE @SchemaName nvarchar(150),
@ObjectName nvarchar(150),
@DatabaseName nvarchar(150),
@cmd nvarchar(500)
--Получим имя схемы из выполняемой команды CREATE TABLE
SET @SchemaName = EVENTDATA().value('(/EVENT_INSTANCE/SchemaName)[1]','nvarchar(150)')
--Получим имя таблицы
SET @ObjectName = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(150)')
--Получим имя базы
SET @DatabaseName = EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(150)')
--Сформируем из полученных данных требуемую команду на установку признака сжатия для таблицы
set @cmd = 'ALTER TABLE [' + @DatabaseName + '].[' + @SchemaName + '].[' + @ObjectName + '] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)'
--Теперь проверяем настройки – если базы нет в таблице CompressionSetting.dbo.Databases с признаком Active = 1, то выполняем команду, иначе игнорируем
IF NOT EXISTS (SELECT 1 AS Expr1
FROM CompressionSetting.dbo.Databases AS T
WHERE (name = @DatabaseName) AND Active = 1)
BEGIN
INSERT INTO CompressionSetting.dbo.trace (text, DatabaseName, DateTime) SELECT @cmd, @DatabaseName, GETDATE()
EXEC (@cmd)
END
ELSE
BEGIN
PRINT 'TEST'
END
GO
ENABLE TRIGGER [data_compression] ON ALL SERVER
GO
IDA64.7z
58,7 МБ

Пока никто не написал. Будьте первым!
Войдите, чтобы оставить комментарий.