Dans SQL Server, lors de l'utilisation de Transact-SQL, la réduction de la taille d'un fichier de données nécessite une syntaxe différente de son augmentation. Pour réduire la taille d'un fichier à l'aide de T-SQL, utilisez le DBCC SHRINKFILE
et indiquez le nom du fichier de données ainsi que la taille à laquelle vous souhaitez le réduire.
Vous trouverez ci-dessous des exemples de réduction de la taille d'un fichier de données dans SQL Server à l'aide de T-SQL.
Exemple de base
Voici un exemple basique de réduction de la taille d'un fichier de données à l'aide de T-SQL :
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2, 5); GO
Ceci est probablement assez explicite. Tout d'abord, nous passons à la base de données dont nous voulons modifier le fichier de données. Nous utilisons ensuite DBCC SHRINKFILE
pour spécifier quel fichier de données et à quelle taille de fichier le réduire. C'est en Mo, donc notre exemple le réduira à 5 Mo.
Réduisez-le à la taille de fichier par défaut
Si vous ne spécifiez pas de taille de fichier, le fichier sera réduit à sa taille par défaut. La taille par défaut est la taille spécifiée lors de la création du fichier.
Exemple :
USE Solutions; GO DBCC SHRINKFILE (Solutions_dat_2); GO
Tronquer le fichier de données
Vous pouvez tronquer le fichier de données en utilisant le TRUNCATEONLY
arguments.
Voici un exemple :
USE Solutions; GO DBCC SHRINKFILE ('Solutions', TRUNCATEONLY); GO
Vider un fichier de données
Vous pouvez également vider un fichier de données en utilisant le EMPTYFILE
arguments.
Exemple :
DBCC SHRINKFILE (Solutions2, EMPTYFILE); GO
Cela migre toutes les données du fichier spécifié vers d'autres fichiers dans le même groupe de fichiers. Par conséquent, vous devrez vous assurer que ce n'est pas le seul fichier du groupe de fichiers (sinon vous obtiendrez une erreur). EmptyFile vous assure également qu'aucune nouvelle donnée ne sera ajoutée au fichier.
Une fois que vous avez vidé le fichier, vous pouvez le supprimer si c'est ce que vous voulez faire. Voici un exemple de suppression du fichier vidé :
ALTER DATABASE Solutions REMOVE FILE Solutions2; GO
Et nous pouvons vérifier qu'il a été supprimé en exécutant ce qui suit :
USE Solutions; GO SELECT file_id, name, type_desc, physical_name, size, max_size FROM sys.database_files ; GO