Condividi tramite


COMPRESS (Transact-SQL)

Si applica a: SQL Server 2016 (13.x) e versioni successive di Istanza gestita di SQL diAzure Istanza gestita di SQL diAzure Azure Synapse Analyticsin Microsoft FabricWarehouse nel database SQL diMicrosoft Fabricin Microsoft Fabric

Questa funzione comprime l'espressione di input usando l'algoritmo Gzip . La funzione restituisce una matrice di byte di tipo varbinary (max).

Convenzioni relative alla sintassi Transact-SQL

Sintassi

COMPRESS ( expression )

Argomenti

expression

Espressione di uno dei tipi di dati seguenti:

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

Per altre informazioni, vedere Espressioni.

Tipi restituiti

varbinary(max), che rappresenta il contenuto compresso dell'input.

Osservazioni:

I dati compressi non possono essere indicizzati.

La funzione COMPRESS comprime i dati di espressione dell'input. Richiamare questa funzione per ogni sezione di dati da comprimere. Per altre informazioni sulla compressione automatica dei dati durante l'archiviazione a livello di riga o di pagina, vedere Compressione dei dati.

Esempi

R. Comprimere i dati durante l'inserimento di tabelle

L'esempio illustra come comprimere i dati inseriti in una tabella:

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. Archiviare la versione compressa di righe eliminate

Questa istruzione elimina i record obsoleti Player (Giocatore) dalla tabella player, dopo di ché, per risparmiare spazio, archivia i record nella tabella inactivePlayer usando un formato compresso.

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