是否可以在存储过程本身中声明/创建表类型参数(TVP),而不是在模式中单独创建表值类型,然后在存储过程中使用它。即,
create procedure proc1(
@table1 table(id int) readonly
)
as
begin
select top 1 * from sysobjects
end
答案 0 :(得分:3)
来自MSDN:
表值参数基于强类型表结构 通过使用Transact-SQL CREATE TYPE语句定义的。 您 必须创建一个表类型并在SQL Server中定义结构 在您可以在客户端中使用表值参数之前 应用强>
所以很明显,你不能像你想要的那样在存储过程中声明TVP - 只能通过创建用户定义的类型。