COMPRESS (Transact-SQL)
适用于:SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Microsoft Fabric 中的 SQL 分析终结点 Microsoft Fabric 中的仓库
此函数使用 Gzip 算法压缩输入表达式。 该函数返回类型 varbinary(max) 的字节数组。
语法
COMPRESS ( expression )
参数
expression
下列数据类型之一的表达式:
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
有关详细信息,请参阅表达式 (Transact-SQL)。
返回类型
varbinary(max),代表已压缩的输入内容。
注解
压缩的数据无法编入索引。
COMPRESS
函数压缩输入的表达式数据。 必须调用此函数,才能压缩每个部分的数据。 有关行或页级别存储过程中的自动数据压缩的详细信息,请参阅数据压缩。
示例
A. 在插入表格期间压缩数据
此示例演示如何压缩插入到表格中的数据:
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. 将已删除行的压缩版本进行存档
此语句先从 player
表中删除旧的播放器记录。 为节省空间,它会以压缩格式将记录存储在 inactivePlayer
表中。
DELETE
FROM player
OUTPUT deleted.id,
deleted.name,
deleted.surname,
deleted.datemodifier,
COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;