次の方法で共有


sys.types (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス

システム型とユーザー定義の型ごとに 1 行のデータを格納します。

列名 データ型 説明
name sysname 型の名前。 スキーマ内で一意です。
system_type_id tinyint 内部システム型の ID。
user_type_id int 型の ID です。 データベース内で一意です。

hierarchyidgeometrygeography などの CLR アセンブリ型は、異なるsystem_type_idを持ち、is_assembly_typeを使用して識別できます。 sysname データ型は、nvarchar に基づく内部データ型です。
schema_id int 型が属しているスキーマの ID。
principal_id int スキーマの所有者と異なる場合は、個々の所有者の ID。 既定では、スキーマに含まれているオブジェクトはスキーマの所有者が所有します。 ただし、ALTER AUTHORIZATION ステートメントを使って所有権を変更することで、代わりの所有者を指定できます。

NULL 代替の個人所有者が存在しない場合は〘。
max_length smallint 型の最大長 (バイト単位) です。

-1 = 列データ型は、 varchar(max)nvarchar(max)varbinary(max)、または xml です。
text列の場合、max_length値は 16 になります。
precision tinyint 型が数値型の場合は、その最大有効桁数。そうでない場合は 0。
scale tinyint 型が数値型の場合は、その小数点以下の最大桁数。そうでない場合は 0。
collation_name sysname 文字ベースの場合は、型の照合順序の名前。その他の賢明な、 NULL
is_nullable bit 型は Null 許容です。
is_user_defined bit 1 = ユーザー定義型。

0 = SQL Server システム データ型。
is_assembly_type bit 1 = 型の実装は CLR アセンブリで定義されます。

0 = 型は SQL Server システム データ型に基づいています。
default_object_id int sp_bindefault を使って型にバインドされるスタンドアロン既定値の ID。

0 = 既定値は存在しません。
rule_object_id int sp_bindrule を使って型にバインドされるスタンドアロン ルールの ID。

0 = ルールが存在しません。
is_table_type bit 型はテーブルであることを示します。

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

使用例

テーブルの列の詳細を取得する

テーブル内の列のメタデータを取得するには、次のコードを使用できます。

CREATE TABLE dbo.[sample] (
    id INT NOT NULL
    ,col1 VARBINARY(10) NULL
    )
GO

SELECT c.[name] AS column_name
    ,t.[name] AS [type_name]
    ,c.[max_length]
    ,c.[precision]
    ,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');