COMPRESSA (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL analytics endpoint in Microsoft FabricWarehouse em Microsoft FabricSQL database in Microsoft Fabric

Esta função comprime a expressão de entrada, usando o algoritmo Gzip . A função retorna uma matriz de bytes do tipo varbinary(max).

Transact-SQL convenções de sintaxe

Sintaxe

COMPRESS ( expression )

Arguments

expressão

Uma expressão de um dos seguintes tipos de dados:

  • binário(n)
  • char(n)
  • Nchar(n)
  • nvarchar(max)
  • nvarchar(n)
  • varbinary(max)
  • varbinário(n)
  • varchar (máx.)
  • Varchar(n)

Para obter mais informações, consulte Expressões.

Tipos de devolução

varbinary(max), representando o conteúdo comprimido da entrada.

Observações

Os dados compactados não podem ser indexados.

A COMPRESS função compacta os dados da expressão de entrada. Você deve invocar essa função para cada seção de dados a ser compactada. Para obter mais informações sobre a compactação automática de dados durante o armazenamento no nível de linha ou página, consulte Compactação de dados.

Examples

A. Compactar dados durante a inserção da tabela

Este exemplo mostra como compactar dados inseridos em uma tabela:

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. Arquivar versão compactada de linhas excluídas

Esta instrução primeiro exclui registros de jogadores antigos da player tabela. Para economizar espaço, ele armazena os inactivePlayer registros na tabela, em um formato compactado.

DELETE FROM player
OUTPUT
    deleted.id,
    deleted.name,
    deleted.surname,
    deleted.datemodifier,
    COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;