DATALENGTH (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

この関数では、式を表すために必要なバイト数が返されます。

Note

文字列式内の文字数を取得するには、LEN 関数を使用します。

Transact-SQL 構文表記規則

構文

DATALENGTH ( expression )   

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

式 (expression)
任意の型の

戻り値の型

expressionvarchar(max)nvarchar(max)varbinary(max) データ型の場合は bigint、それ以外の場合は int

解説

次のような可変長データを格納できるデータ型で使用すると、DATALENGTH は非常に便利です。

  • image
  • ntext
  • nvarchar
  • text
  • varbinary
  • varchar

NULL 値の場合、DATALENGTH は NULL を返します。

Note

戻り値は、互換性レベルによって変わることがあります。 互換性レベルの詳細については、「ALTER database (transact-sql) SQL の互換性レベル」を参照してください。

Note

特定の文字列式にエンコードされた文字数を取得するには LEN を使用し、特定の文字列式のバイト サイズを取得するには DATALENGTH を使用します。 これらの出力は、データ型および列で使用されているエンコードの種類によっては、異なる場合があります。 異なる種類のエンコードでの記憶域の違いについて詳しくは、「照合順序と Unicode のサポート」をご覧ください。

この例では、Product テーブルの Name 列の長さが返されます。

USE AdventureWorks2022  
GO
SELECT length = DATALENGTH(EnglishProductName), EnglishProductName  
FROM dbo.DimProduct  
ORDER BY EnglishProductName;  
GO  

関連項目

LEN (Transact-SQL)
CAST および CONVERT (Transact-SQL)
データ型 (Transact-SQL)
システム関数 (Transact-SQL)