COMPRESS (Transact-SQL)

Se aplica a: síSQL Server 2016 (13.x) y versiones posteriores SíAzure SQL Database SíInstancia administrada de Azure SQL síAzure Synapse Analytics

Esta función comprime la expresión de entrada usando el algoritmo GZIP. La función devuelve una matriz de bytes del tipo varbinary(max).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

COMPRESS ( expression )  

Argumentos

expression
A

  • binary( n)
  • char( n)
  • nchar( n)
  • nvarchar(max)
  • nvarchar( n)
  • varbinary(max)
  • varbinary( n)
  • ntext

o bien

  • varchar( n)

expression: Para más información, vea Expresiones (Transact-SQL).

Tipos de valores devueltos

varbinary(max) representa el contenido comprimido de la entrada.

Observaciones

Los datos comprimidos no se pueden indexar.

La función COMPRESS comprime los datos de la expresión de entrada. Debe invocar esta función para cada sección de datos que se vaya a comprimir. Vea Compresión de datos para obtener más información acerca de la compresión de datos automática durante el almacenamiento en el nivel de fila o página.

Ejemplos

A. Comprimir datos durante la inserción de tabla

En este ejemplo se muestra cómo comprimir los datos insertados en una tabla:

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. Archivar una versión comprimida de filas eliminadas

Esta instrucción primero elimina los registros antiguos del reproductor de la tabla player. Para ahorrar espacio, luego almacena los registros en la tabla inactivePlayer, en un formato comprimido.

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

Consulte también

Funciones de cadena (Transact-SQL)
DECOMPRESS (Transact-SQL)