Select datalenth(字段1)+datalenth(字段2)+...+datalenth(字段N) from 表 where ...
--得到数据库中所有表的空间/记录情况create table #tb(表名 sysname,记录数 int ,保留空间 varchar(10),使用空间 varchar(10) ,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tbgo drop table #tb
declare @sql varchar(8000) set @sql='' select @sql=@sql'+datalength('+name+')' from syscolumns where id=object_id('表名')set @sql=substring(@sql,2,8000) exec('select '+@sql+' 大小 from 表名 where 编号=45')
declare @表名 varchar(1000),@编号 varchar(100) select @表名='Table1',@编号='2423dfsds' ------------------------------------ declare @sql varchar(8000) set @sql='' select @sql=@sql'+datalength('+name+')' from syscolumns where id=object_id(@表名)set @sql=substring(@sql,2,8000) exec('select '+@sql+' 某一条记录大小 from '+@表名+' where 编号='''+@编号+'''')
from 表 where ...
,保留空间 varchar(10),使用空间 varchar(10)
,索引使用空间 varchar(10),未用空间 varchar(10))insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''select * from #tbgo
drop table #tb
set @sql=''
select @sql=@sql'+datalength('+name+')' from syscolumns where id=object_id('表名')set @sql=substring(@sql,2,8000)
exec('select '+@sql+' 大小 from 表名 where 编号=45')
select @表名='Table1',@编号='2423dfsds'
------------------------------------
declare @sql varchar(8000)
set @sql=''
select @sql=@sql'+datalength('+name+')' from syscolumns where id=object_id(@表名)set @sql=substring(@sql,2,8000)
exec('select '+@sql+' 某一条记录大小 from '+@表名+' where 编号='''+@编号+'''')