如何在SQL Server中按行数调整表的大小

如何在SQL Server中按行数调整表的大小,sql,sql-server,database,Sql,Sql Server,Database,我有一个表,我想从中得到基于字节的数字记录的大小 在SQL Server中: 我能给出的唯一相关答案是: SELECT s.name AS SchemaName, t.name AS TableName, p.rows AS RowCounts, a.total_pages * 8 AS TotalSpaceKB, a.used_pages * 8 AS UsedSpaceKB, a.total_pages * 8 / p.rows AS each

我有一个表,我想从中得到基于字节的数字记录的大小 在SQL Server中:


我能给出的唯一相关答案是:

SELECT
    s.name AS SchemaName,
    t.name AS TableName,
    p.rows AS RowCounts,
    a.total_pages * 8 AS TotalSpaceKB,
    a.used_pages * 8 AS UsedSpaceKB,
    a.total_pages * 8 / p.rows AS eachRowTotalSpaceKB,
    a.used_pages * 8 / p.rows AS eachRowUsedSpaceKB,
    a.total_pages * 8 / p.rows * (select * from dbo.PictureTable where SchoolCode=1001) AS queryTotalSpaceKB,
    a.used_pages * 8 / p.rows * (select * from dbo.PictureTable where SchoolCode=1001) AS queryTotalSpaceKB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    s.name = 'dbo' AND
    t.name = 'PictureTable';

编辑
您可以使用以下方法获取字段中数据的长度:

SELECT SUM(DATALEGTH(PictureTable_ID)) + SUM(DATALEGTH(Groupcourses_ID)) +SUM(DATALEGTH(per_ID)) + SUM(DATALEGTH(School_ID)) + SUM(DATALEGTH(AcademicYear_ID)) + SUM(DATALEGTH(PictureTable_Description)) + SUM(DATALEGTH(SchoolCode)) As rowSizes
FROM PictureTable
WHERE (SchoolCode = 1001);

你想知道给定表格的大小(以字节为单位)还是想计算记录数。看一下这个问题,请重写这个问题,因为这个问题不够清楚,无法理解。**我用另一种方式问这个问题,想调节数字记录的增重,然后调节它们的增重**
--如何根据条件调整表格的大小==>从中选择*dbo.PictureTable如果SchoolCode=1001IMO,查询结果是
视图
而不是
,并且视图在存储上没有空间!?都是重量表--我去了自定义数字在表中记录重量如果你想知道每行的数据长度,我将编辑信息添加到我的答案;)。感谢是真正的解决方案