2011-06-07 75 views
4

我創建了一些用作用戶定義類型的表值參數。有什麼辦法,我可以選擇自己的列,就像我可以選擇一個表列:如何爲用戶定義類型選擇所有列

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME LIKE 'MyTable' 

編輯:是的,我試圖讀取MSDN,但我沒有看到的信息。我目前的解決辦法是建立一個永久表如下:

CREATE TABLE Placeholder(copy-and-paste all the columns from my type here) 

然後,我可以從INFORMATION_SCHEMA.COLUMNS選擇和刪除佔位符的時候,我做了。

回答

9

這會給你的列清單的表型TVPTest

select c.* 
from sys.table_types as tt 
    inner join sys.columns as c 
    on tt.type_table_object_id = c.object_id 
where tt.name = 'TVPTest' 
+0

這個工作,謝謝! – 2011-06-07 18:43:17

1

接受的答案的效果很好,但我延長了一點,以獲得更多的細節:

select 
    c.name 
    ,ColumnType = t.name 
    ,ColumnLength = c.max_length 
from sys.table_types as tt 
    join sys.columns as c 
    on tt.type_table_object_id = c.object_id  
    join sys.types t 
    on t.system_type_id = c.system_type_id 
    and t.user_type_id = c.user_type_id 
    -- and tt.type_table_object_id = c.object_id 
where tt.name = 'StatusDetail' 
相關問題