Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
do Banco de Dados SQL
doAzure Azure Instância
Gerenciada de SQLdo Azure Synapse Analytics
ponto deextremidade de análise de SQL no Microsoft Fabric
Warehouse no Banco de Dados SQLdo Microsoft Fabric
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.
Tipos 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. Para obter mais informações sobre a compactação automática de dados durante o armazenamento no nível da linha ou da página, consulte Compactação de dados.
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;