DATALENGTH (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

此函数返回用于表示任何表达式的字节数。

注意

若要返回字符串表达式中的字符数,请使用 LEN 函数。

Transact-SQL 语法约定

语法

DATALENGTH ( expression )   

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

expression
任何数据类型的表达式

返回类型

如果 expression 具有一个 nvarchar(max)、varbinary(max) 或 varchar(max) 数据类型,则为 bigint;否则为 int

备注

当与可以存储长度可变数据的数据类型一起使用时,DATALENGTH 会非常有用,如:

  • 图像
  • 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)