Aracılığıyla paylaş


SIKIŞTIRMA (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsSQL analiz uç noktası Microsoft Fabric'teki Microsoft FabricSQL veritabanında Microsoft Fabric'te

Bu işlev Gzip algoritmasını kullanarak giriş ifadesini sıkıştırır. İşlev , varbinary(max) türünde bir bayt dizisi döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

COMPRESS ( expression )

Arguments

ifade

Aşağıdaki veri türlerinden birinin ifadesi:

  • ikili(n)
  • char(n)
  • nchar(n)
  • nvarchar(max)
  • nvarchar(n)
  • varbinary(max)
  • varbinary(n)
  • varchar(maksimum)
  • varchar(n)

Daha fazla bilgi için bkz . İfadeler.

Dönüş türleri

girişin sıkıştırılmış içeriğini temsil eden varbinary(max).

Açıklamalar

Sıkıştırılmış veriler dizine alınamaz.

COMPRESS işlevi, giriş ifadesi verilerini sıkıştırır. Her veri bölümünün sıkıştırılması için bu işlevi çağırmanız gerekir. Satır veya sayfa düzeyinde depolama sırasında otomatik veri sıkıştırma hakkında daha fazla bilgi için bkz. Veri sıkıştırma.

Örnekler

A. Tablo ekleme sırasında verileri sıkıştırma

Bu örnekte tabloya eklenen verilerin nasıl sıkıştırılması gösterilmektedir:

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. Silinen satırların sıkıştırılmış sürümünü arşivle

Bu deyim ilk olarak tablodan player eski oyuncu kayıtlarını siler. Alandan tasarruf etmek için kayıtları tablodaki inactivePlayer sıkıştırılmış biçimde depolar.

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