适用于:sql Server 2016 (13.x) 及更高版本
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
SQL 分析终结点Microsoft Fabric
Warehouse 中的
Microsoft Fabric SQL 数据库在 Microsoft Fabric 中的 fabric SQL 数据库
此函数使用 Gzip 算法压缩输入表达式。 该函数返回类型 varbinary(max) 的字节数组。
语法
COMPRESS ( expression )
参数
expression
下列数据类型之一的表达式:
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
有关详细信息,请参阅表达式。
返回类型
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;