型 (nvarchar や int など) が固定長であるか、システム テーブルをクエリして固定長でない場合、t-sql を使用してランタイムを調べることは可能ですか?
これを行う必要がある理由は、SQL コード ランタイムを生成する必要があり、一部の列の型 (設計時に不明) に応じて宣言 (DECLARE @foo SOMETYPE(LENGTH)
またはDECLARE @foo SOMETYPE
) を生成する必要があるためです。
私の現在の賭けは、sys.all_columns.max_length = sys.types.max_length
それが固定長であると仮定するかどうかを確認できることmax_length
です(少なくともnvarcharの場合、特別なコード(-1)があるようです)。