【发布时间】:2015-06-11 11:00:47
【问题描述】:
我是 SQL Server 的新手,所以如果我的问题看起来太简单了,我深表歉意。我尝试自己寻找和回答,但我失败得很惨。我正在尝试创建一个查询,它将返回表中每一行的驱动器上的总大小。
我考虑过使用 dbcc showconting,但它不适用于出现在我的表中的 varchar(max)。此外,它不会返回每行的大小,而是返回平均、最大和最小大小。到目前为止,我的阅读表明不可能获得可以显示表中每一行大小的查询,因此我决定确定每行中每一列中所有字符的总长度。间接地,它会让我了解每行的大小。
我有一个包含一些 varchar(500) 和 varchar(max) 列的表。我注意到有些行比其他行大得多。
我需要的是表中最长的 1000 行,最好是在显示两列的输出中: 第 1 列显示 EntryID 第 2 列 显示该记录的所有列中字符的总长度(例如,第 1 列中的字符总长度 + 第 2 列中的字符总长度 + 第 3 列 + 第 4 列等。 .) 如果可以将其命名为 RowLength,那就太好了。
到目前为止我尝试的是:
SELECT TOP 1000
(LEN(columnname1) + LEN(columnname2) + LEN(columnname3) + LEN(columnname4)) as RowLength,
FROM dbo.tablename
ORDER BY Length Desc
它有效,但它不显示对应于行中所有字符的总长度的条目 ID。我该如何添加它?
它也不显示显示行中字符数的列的别名。
您能否建议我如何更改查询以获得预期结果?如有任何建议,我将不胜感激。
【问题讨论】:
-
我能不能问一下投反对票的原因,这样我以后可以避免犯同样的错误?
标签: sql-server varchar maxlength