Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE
- @table_name NVARCHAR(500)
- ,@schema_name NVARCHAR(500)
- ,@query NVARCHAR(500)
- DECLARE db_cursor CURSOR FOR
- SELECT
- t.NAME AS [table_name]
- ,s.NAME AS [schema_name]
- FROM sys.tables t
- INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id
- INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
- INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
- WHERE
- t.NAME NOT LIKE 'dt%'
- AND i.OBJECT_ID > 255
- GROUP BY
- t.NAME, s.name
- HAVING MAX([data_compression_desc]) NOT IN ('PAGE','ROW')
- OPEN db_cursor
- FETCH NEXT FROM db_cursor INTO @table_name, @schema_name
- WHILE @@FETCH_STATUS = 0
- BEGIN
- BEGIN TRY
- SET @query = N'ALTER TABLE [' + @schema_name + N'].[' + @table_name + N'] REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = PAGE )'
- PRINT @query
- EXEC sp_executesql @query
- END TRY
- BEGIN CATCH
- RAISERROR( 'Compression failed for backup table : %s', 20, 101, @table_name ) WITH LOG
- END CATCH
- FETCH NEXT FROM db_cursor INTO @table_name, @schema_name
- END
- CLOSE db_cursor
- DEALLOCATE db_cursor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement