分享方式:


COMPRESS (Transact-SQL)

適用於: sql Server 2016 (13.x) 和更新版本的 Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Warehouse Microsoft Fabric 中的 Azure Synapse Analytics SQL 分析端點

此函數使用 GZIP 演算法壓縮輸入運算式。 此函式會傳回類型 varbinary(max)的位元組陣列。

Transact-SQL 語法慣例

語法

COMPRESS ( expression )

引數

expression

下列其中一種料類型的運算式:

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

如需詳細資訊,請參閱運算式 (Transact-SQL)

傳回類型

varbinary(max),代表已經壓縮的輸入內容。

備註

壓縮後的資料無法編製索引。

COMPRESS 函式會壓縮輸入運算式資料。 您必須叫用此函式才能壓縮各資料區段。 如需在儲存資料列或頁面層級時自動壓縮資料的詳細資訊,請參閱資料壓縮

範例

A. 插入資料表時壓縮資料

此範例示範如何壓縮插入資料表的資料:

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. 封存已刪除資料列的壓縮版本

此陳述式會先從 player 資料表將舊的玩家記錄刪除。 為節省空間,陳述式隨後會以壓縮格式將記錄儲存在 inactivePlayer 資料表。

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

請參閱