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

前端之家收集整理的这篇文章主要介绍了sql-server – 如何获取SQL Server表中每行的实际数据大小?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我找到了这个脚本
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.f2er.com/mssql/79446.html

猜你在找的MsSQL相关文章