Red*_*ght 2 sql-server t-sql sql-server-2008-r2 table-valued-parameters
我知道如何创建表类型(用作表值参数) - 但是一旦创建,我如何查看它?
您可以看到名称列表:
SELECT name FROM sys.table_types;
Run Code Online (Sandbox Code Playgroud)
要查看定义,您可以转到对象资源管理器:
如果您想自动执行此操作,至少对于列/数据类型(这会忽略索引、键等),您可以构建以下内容:
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;
Run Code Online (Sandbox Code Playgroud)
这会产生如下输出(每个表类型一个结果集):
当然,如果你用撇号命名了一个表类型,它会出错 - 不要这样做)。