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 です。 データベース内で一意です。 hierarchyid、geometry、geography などの 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');