1
0
mirror of https://github.com/alex-bochkov/ssms-addin.git synced 2025-11-23 22:04:53 +02:00
Files
ssms-addin/QueryTemplates/Common Scripts/shrink-data-files-incrementally.sql
2020-04-19 14:25:36 -07:00

21 lines
669 B
Transact-SQL

-- Enter the file name you want to shrink and target file size
-- File will be shrinked in a loop by one gigabyte at a time
DECLARE @FileName VARCHAR(100) = 'file_name';
DECLARE @DesiredSize BIGINT = 30000;
DECLARE @CurrentSize BIGINT;
SELECT @CurrentSize = ROUND(CAST(size AS BIGINT) * 8 / 1024, -3) FROM sys.database_files WHERE name = @FileName
WHILE (@CurrentSize >= @DesiredSize)
BEGIN
SET LOCK_TIMEOUT 5000; -- this supposed to help against heavy blocking (but I don't think it works)
DBCC SHRINKFILE (@FileName , @CurrentSize);
PRINT @FileName + ' new size is: ' + FORMAT(@CurrentSize, 'N0');
SET @CurrentSize = @CurrentSize - 1000;
END