You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server存储过程能否同时使用表值参数与其他参数?

SQL Server存储过程混合表值参数与普通参数的问题

有评论指出我对表值参数的括号使用有误,我附上微软文档页面的截图:
存储过程中表值参数的括号
截图里明确显示了该用法的括号,而且我的存储过程不加括号就无法通过编译。

我在SQL Server 2017的存储过程中尝试同时使用表值参数和其他普通参数,但似乎这种混合使用的方式不被支持——尽管微软官方文档的「表值参数的限制」章节里并没有列出这条限制。想请大家帮忙确认:这确实是SQL Server的限制,还是我的操作哪里出错了?

create type IntegerList as TABLE (i int);

-- 此语法无效:
create proc Test
 @foo char(1),
 @idlist dbo.IntegerList READONLY
 as
 begin
 <snip>
 end

我发现表值参数必须用括号包裹:

-- 此语句执行成功
create proc Test
(@idlist dbo.IntegerList READONLY)
as
begin
 <snip>
 end

但如果我尝试在表值参数之前或之后插入其他普通参数,就会出现语法错误:

-- 此语句出现语法错误
create proc Test
 @foo char(1),
(@idlist dbo.IntegerList READONLY)
 as
 begin
 <snip>
 end

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:55:30