COMPRESS (Transact-SQL)

适用于:SQL Server 2016 (13.x) 及更高版本 Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Microsoft Fabric 中的 SQL 分析终结点 Microsoft Fabric 中的仓库

此函数使用 Gzip 算法压缩输入表达式。 该函数返回类型 varbinary(max) 的字节数组

Transact-SQL 语法约定

语法

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;

另请参阅