DATALENGTH (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

此函式會傳回用來代表任何運算式的位元組數目。

注意

若要傳回字串運算式中的字元數目,請使用 LEN 函式。

Transact-SQL 語法慣例

Syntax

DATALENGTH ( expression )   

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

expression
任何資料類型的運算式

傳回類型

如果 expression 具有 nvarchar(max)varbinary(max)varchar(max) 資料類型,則為 bigint;否則為 int

備註

對於可以儲存可變長度資料的資料類型,DATALENGTH 會非常有用:

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

針對 NULL 值,DATALENGTH 會傳回 NULL。

注意

相容性層級可能會影響傳回值。 如需相容性層級的詳細資訊,請參閱 ALTER DATABASE 相容性層級 (Transact-SQL)

注意

使用 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)