適用対象: ○SQL Server (2016 以降) ○Azure SQL Database ○Azure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2016) yesAzure SQL Database yesAzure SQL Data Warehouse noParallel Data Warehouse

この関数は GZIP アルゴリズムを使用して、入力式を圧縮します。This function compresses the input expression, using the GZIP algorithm. この関数は varbinary (max) 型のバイト配列を返します。The function returns a byte array of type varbinary(max).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions


COMPRESS ( expression )  


式 (expression)expression

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


  • varchar(n)varchar(n)

expression。expression. 詳細については、「式 (Transact-SQL)」を参照してください。See Expressions (Transact-SQL) for more information.

戻り値の型Return types

圧縮された入力内容を表す varbinary (max)varbinary(max) representing the compressed content of the input.


圧縮されたデータにインデックスを付けることはできません。Compressed data cannot be indexed.

COMPRESS 関数は入力式のデータを圧縮します。The COMPRESS function compresses the input expression data. 圧縮するデータ セクションごとに、この関数を呼び出す必要があります。You must invoke this function for each data section to compress. ストレージ中の行またはページ レベルでの自動データ圧縮の詳細については、「データ圧縮」を参照してください。See Data Compression for more information about automatic data compression during storage at the row or page level.


A.A. 表の挿入中にデータを圧縮するCompress Data During the Table Insert

この例では、テーブルに挿入されるデータを圧縮する方法を示します。This example shows how to compress data inserted into a table:

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.B. 削除された行の圧縮バージョンをアーカイブするArchive compressed version of deleted rows

次のステートメントは、まず player テーブルから古いプレーヤー レコードを削除します。This statement first deletes old player records from the player table. 次に、領域を節約するために、レコードを圧縮形式で inactivePlayer テーブルに格納します。To save space, it then stores the records in the inactivePlayer table, in a compressed format.

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

参照See also

文字列関数 (Transact-SQL)String Functions (Transact-SQL)