Sql-Server
獲取所有表類型的名稱和定義
我知道如何創建表類型(用作表值參數) - 但是一旦創建,我如何查看它?
您可以看到名稱列表:
SELECT name FROM sys.table_types;
要查看定義,您可以轉到對象資源管理器:
如果您想自動執行此操作,至少對於列/數據類型(這不包括索引、鍵等),您可以建構以下內容:
DECLARE @sql nvarchar(max) = N'', @stub nvarchar(max) = N'SELECT N''$--obj--$'', name, system_type_name FROM sys.dm_exec_describe_first_result_set(''DECLARE @tvp $--obj--$; SELECT * FROM @tvp;'',null,null) ORDER BY column_ordinal;'; SELECT @sql += REPLACE(@stub, N'$--obj--$', QUOTENAME(s.name) + N'.' + QUOTENAME(t.name)) FROM sys.table_types AS t INNER JOIN sys.schemas AS s ON t.[schema_id] = s.[schema_id]; EXEC sys.sp_executesql @sql;
這會產生如下輸出(每種表類型一個結果集):
當然,如果你用撇號命名了一個表類型,它會出錯——不要那樣做)。