14

ユーザー定義のテーブル タイプの列情報を取得するにはどうすればよいですか?

EXEC sp_columns TABLENAME

テーブルのすべての列情報を取得します。

SearchList と呼ばれるユーザー定義のテーブル タイプに対して同じことを行い、ほぼ同じ列情報を返したいと考えています。

C# で必要なデータ テーブルをコード生成できるように、これを取得したいと考えています。

私が使用したものを表示するための更新

select c.name as COLUMN_NAME, t.name as [TYPE_NAME], c.precision as [PRECISION], c.is_nullable as [NULLABLE], c.system_type_id, c.precision as [LENGTH]
from sys.columns c, sys.types t
where c.object_id = (select type_table_object_id from sys.table_types where name = 'SearchList')
and t.user_type_id = c.user_type_id
order by c.column_id
4

2 に答える 2

23

これにより、すべてのテーブル タイプとその列が一覧表示されます。

select tt.name, c.name from sys.table_types tt
inner join sys.columns c on c.object_id = tt.type_table_object_id
order by c.column_id

where 句を追加し、必要に応じて他の列を選択して、必要なものを取得できます。

于 2013-07-03T15:39:01.377 に答える
5

プロジェクトで以下のクエリを使用して、列名とデータ型を含むテーブル型を取得しました。

select tt.name AS table_Type, c.name AS table_Type_col_name,st.name AS     
table_Type_col_datatype
from sys.table_types tt
inner join sys.columns c on c.object_id = tt.type_table_object_id
INNER JOIN sys.systypes AS ST  ON ST.xtype = c.system_type_id
order by tt.name
于 2014-04-08T18:22:27.947 に答える