COMPRESS (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures
Base de données Azure SQL
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint dans Microsoft Fabric
Warehouse dans Microsoft Fabric
Cette fonction compresse l’expression d’entrée à l’aide de l’algorithme Gzip. La fonction retourne un tableau d’octets de type varbinary(max).
Conventions de la syntaxe Transact-SQL
Syntaxe
COMPRESS ( expression )
Arguments
expression
Une expression de l’un des types de données suivants :
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
Pour plus d’informations, consultez Expressions (Transact-SQL)
Type de retour
varbinary(max) représentant le contenu compressé de l’entrée.
Remarques
Les données compressées ne peuvent pas être indexées.
La fonction COMPRESS
compresse les données d’expression d’entrée. Vous devez appeler cette fonction pour chaque section de données à compresser. Pour plus d’informations sur la compression automatique des données pendant le stockage au niveau des lignes ou des pages, consultez Compression des données.
Exemples
R. Compresser des données durant l’insertion de tables
Cet exemple montre comment compresser les données insérées dans une table :
INSERT INTO player (
name,
surname,
info
)
VALUES (
N'Ovidiu',
N'Cracium',
COMPRESS(N'{"sport":"Tennis","age": 28,"rank":1,"points":15258, turn":17}')
);
INSERT INTO player (
name,
surname,
info
)
VALUES (
N'Michael',
N'Raheem',
COMPRESS(@info)
);
B. Archiver la version compressée des lignes supprimées
Cette instruction commence par supprimer les anciens enregistrements de lecteur de la table player
. Pour gagner de l’espace, elle stocke les enregistrements dans la table inactivePlayer
, dans un format compressé.
DELETE
FROM player
OUTPUT deleted.id,
deleted.name,
deleted.surname,
deleted.datemodifier,
COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;