COMPRESS (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric
Essa função compacta a expressão de entrada usando o algoritmo Gzip. A função retorna uma matriz de bytes do tipo varbinary(max).
Convenções de sintaxe de Transact-SQL
Sintaxe
COMPRESS ( expression )
Argumentos
expressão
Uma expressão de um dos seguintes tipos de dados:
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
Para obter mais informações, confira Expressões (Transact-SQL).
Tipo de retorno
varbinary(max) representa o conteúdo compactado da entrada.
Comentários
Dados compactados não podem ser indexados.
A função COMPRESS
compacta os dados de expressão de entrada. É necessário invocar essa função para cada seção de dados a ser compactada. Veja Compactação de dados para saber mais sobre a compactação de dados automática durante o armazenamento no nível de linha ou página.
Exemplos
a. Compactar dados durante a inserção de tabela
O seguinte 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 a versão compactada de linhas excluídas
Primeiro, essa instrução exclui registros antigos do player da tabela player
. Para economizar espaço, em seguida, armazena os registros na tabela inactivePlayer
, 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;