J'ai remarqué dans le passé que réduire le fichier de données en petits morceaux peut être plus efficace que d'essayer de le réduire en une seule fois. Si vous deviez essayer d'utiliser une stratégie similaire, vous voudriez faire quelque chose comme ci-dessous :
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