COMPRESS (Transact-SQL)
Applies to: SQL Server 2016 (13.x) and later
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
This function compresses the input expression, using the GZIP algorithm. The function returns a byte array of type varbinary(max).
Transact-SQL Syntax Conventions
Syntax
COMPRESS ( expression )
Arguments
expression
A
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
or
- varchar(n)
expression. See Expressions (Transact-SQL) for more information.
Return types
varbinary(max) representing the compressed content of the input.
Remarks
Compressed data cannot be indexed.
The COMPRESS
function compresses the input expression data. You must invoke this function for each data section to compress. See Data Compression for more information about automatic data compression during storage at the row or page level.
Examples
A. Compress Data During the Table Insert
This example shows how to compress data inserted into a 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. Archive compressed version of deleted rows
This statement first deletes old player records from the player
table. To save space, it then stores the records in the inactivePlayer
table, in a compressed format.
DELETE FROM player
OUTPUT deleted.id, deleted.name, deleted.surname, deleted.datemodifier, COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;
See also
Feedback
Submit and view feedback for