可以使用 #t1 等临时表的名称来确定
select @TableName = [Name]
from tempdb.sys.tables
where [Object_ID] = object_id('tempDB.dbo.#t1')
如何找到表值变量的名称,即由
declare @t2 as table (a int)
目的是能够获取有关表的元信息,使用类似的东西
select @Headers = dbo.Concatenate('[' + c.[Name] + ']')
from sys.all_columns c
inner join sys.tables t
on c.object_id = t.object_id
where t.name = @TableName
尽管对于临时表,您必须查看tempdb.sys.tables
而不是sys.tables
. 你在哪里寻找表值变量?
我现在意识到我不能做我想做的事,那就是编写一个通用函数来将表值变量格式化为 html 表。对于初学者,在 sql server 2005 中,您不能传递表值参数:
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
此外,在 sql server 2008 中,参数必须是强类型的,因此您将始终知道列的数量和类型。