4

有没有办法确定 SQL Server 中记录的最大大小超过手动操作?例如:

CREATE TABLE test (
    id INT PRIMARY KEY IDENTITY(1, 1),
    name VARCHAR(256),
    test_date DATETIME
)

所以,如果我没记错的话,在手动计算时,该记录可能最多为272 bytes. 但是,我有一个包含更多列的表,并且我需要为多个表执行此操作,所以我想知道是否可以通过简单的查询来执行此操作。

例如,我找不到任何信息,INFORMATION_SCHEMA.TABLES甚至找不到INFORMATION_SCHEMA.COLUMNS我认为可以做一个简单SUM的地方。此外,sysobjects似乎syscolumns没有必要的信息。该syscolumns表确实有一个length字段,但这不是实际的存储大小。

谢谢大家!

4

1 回答 1

4

试试这个:

Select  schema_name(T.schema_id) As SchemaName,
        T.Name As TableName,
        Sum(C.max_length) As RowSize
From    sys.tables T
        Inner Join sys.columns C
            ON T.object_id = C.Object_ID
        INNER JOIN sys.types S
            On C.system_type_id = S.system_type_Id
Group By schema_name(T.schema_id),
        T.Name
Order By schema_name(T.schema_id),
        T.Name
于 2013-01-28T13:15:00.897 回答