加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何在表中查找rowsize

发布时间:2021-01-14 16:18:37 所属栏目:MsSql教程 来源:网络整理
导读:我的一个DB已经越来越接近允许的大小. 为了找出包含最大数据的表,我使用了以下查询: exec sp_MSforeachtable @command1="print '?' exec sp_spaceused '?'" 它返回了包含最大数据的罪魁祸首表. 下一步,我想根据大小清理行.为此,我想根据大小订购行. 如何使用

我的一个DB已经越来越接近允许的大小.

为了找出包含最大数据的表,我使用了以下查询:

exec sp_MSforeachtable @command1="print '?' exec sp_spaceused '?'"

它返回了包含最大数据的罪魁祸首表.

下一步,我想根据大小清理行.为此,我想根据大小订购行.

如何使用查询实现此目的?有没有工具可以做到这一点?

解决方法

这将按行大小给出一个行列表,只需相应地设置@table和@idcol(如同写入它将针对Northwind示例运行)
declare @table varchar(20)
declare @idcol varchar(10)
declare @sql varchar(1000)

set @table = 'Employees'
set @idcol = 'EmployeeId'
set @sql = 'select ' + @idcol +',(0'

select @sql = @sql + ' + isnull(datalength(' + name + '),1)' 
    from syscolumns where id = object_id(@table)
set @sql = @sql + ') as rowsize from ' + @table + ' order by rowsize desc'

exec (@sql)

(编辑:衡阳站长网)

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

    热点阅读