站长网 MsSql教程 sql-server – 如何获取SQL Server表中每行的实际数据大小?

sql-server – 如何获取SQL Server表中每行的实际数据大小?

我找到了这个脚本 sql-server-2005-reaching-table-row-size-limit 这似乎返回每个定义的数据类型长度的行大小.我需要一个脚本,它会给我表中的所有行,它们的最大数据大小超过建议的8024(无论MS推荐什么) 解决方法 试试这个脚本: declare @table nvarchar(

我找到了这个脚本


sql-server-2005-reaching-table-row-size-limit

这似乎返回每个定义的数据类型长度的行大小.我需要一个脚本,它会给我表中的所有行,它们的最大数据大小超过建议的8024(无论MS推荐什么)

解决方法

试试这个脚本:

declare @table nvarchar(128)
declare @idcol nvarchar(128)
declare @sql nvarchar(max)

--initialize those two values
set @table = 'YourTable'
set @idcol = 'some id to recognize the row'

set @sql = 'select ' + @idcol +',(0'

select @sql = @sql + ' + isnull(datalength(' + name + '),1)' 
        from  sys.columns 
        where object_id = object_id(@table)
        and   is_computed = 0
set @sql = @sql + ') as rowsize from ' + @table + ' order by rowsize desc'

PRINT @sql

exec (@sql)

行将按大小排序,因此您可以从上到下进行检查.

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mssql/2021/0524/5942.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部