In passato ho notato che ridurre il file di dati in blocchi più piccoli può essere più efficace rispetto al tentativo di ridurlo tutto in una volta. Se dovessi tentare di utilizzare una strategia simile, vorresti fare qualcosa come di seguito:
DECLARE @targetSize AS INT = 388000;
DECLARE @desiredFinalSize AS INT = 362000;
DECLARE @increment AS INT = 300;
DECLARE @sql AS VARCHAR(200);
WHILE @targetSize > @desiredFinalSize
BEGIN
SET @sql = 'DBCC SHRINKFILE(''MyDataFileName'', ' + CAST(@targetSize AS VARCHAR(10)) + ');'
SELECT @sql;
EXEC(@sql);
SET @targetSize = @targetSize - @increment;
END