加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-05-25 05:42:58 所属栏目:MsSql教程 来源:网络整理
导读:我找到了这个脚本 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)

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

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读