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.COLUMNSSUMsysobjectssyscolumnssyscolumnslength

皆さんありがとう!

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 に答える