COMPRESS (Transact-SQL)
適用於: sql Server 2016 (13.x) 和更新版本的 Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Warehouse Microsoft Fabric 中的 Azure Synapse Analytics SQL 分析端點
此函數使用 GZIP 演算法壓縮輸入運算式。 此函式會傳回類型 varbinary(max)的位元組陣列。
語法
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;