5

次の列名とデータ型のテーブルをデータベースに追加しました

"ID" bigInt、"説明"nchar(11)

テーブルのデザインビューを確認すると、列のデータ型は設定したとおりです。

SYS.COLUMNSからそのテーブルの列を取得するクエリを作成すると、列のプロパティが異なります。たとえば、descriptionのmax_lengthは11ではなく22です)

誰かがそれがなぜであるか説明できますか?

必要に応じて、Microsoft SQL Server Enterprise Edition(64ビット)を使用しています。

4

1 に答える 1

15

sys.columnsの列max_lengthは、最大長をバイト単位で示します。ncharは2バイトであるため、11文字は22バイトを使用します。

文字数が必要な場合は、INFORMATION_SCHEMA.COLUMNSを使用できます

select COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'YourTable'

または、関数COLUMNPROPERTYを使用できます

select name,
       columnproperty(object_id, name, 'charmaxlen') as charmaxlen
from sys.columns
where object_name(object_id) = 'YourTable'
于 2012-12-06T12:28:57.957 に答える