如何在SQL Server Management Studio执行存储过程时向Value字段传入自定义表类型值

你在SSMS的存储过程参数输入界面不需要用JSON或者键值对格式,每个参数单独填对应的Value值即可,以下是具体示例:
示例场景
假设你有如下定义的存储过程,包含4个不同值类型的参数:
CREATE PROCEDURE QueryUserOrder @UID INT, -- 用户ID,整数类型 @BeginTime DATETIME, -- 起始查询时间,日期类型 @PayStatus TINYINT, -- 支付状态,小整数类型 @Receiver NVARCHAR(20) -- 收件人,字符串类型 AS BEGIN -- 业务逻辑省略 SELECT * FROM OrderTable WHERE UserId = @UID AND OrderTime >= @BeginTime AND PayStatus = @PayStatus AND ReceiverName = @Receiver END
对应SSMS参数填写方式
在弹出的参数列表中,每一行对应一个参数,直接在对应参数的Value列填值即可:
@UID参数行的Value列填:10086@BeginTime参数行的Value列填:'2024-01-01 00:00:00'(日期字符串需要加英文单引号)@PayStatus参数行的Value列填:2(2代表已支付,按你业务定义的枚举值填即可)@Receiver参数行的Value列填:'张三'(字符串类型需要加英文单引号)
注意事项
- 如果参数允许为空,Value列直接填
NULL即可,不需要加引号 - 所有符号都要用英文半角格式,不要用中文全角的引号、括号等
- 如果是单个参数需要传入多个值(比如需要传入多个用户ID查询),这种场景不建议直接在SSMS的Value列填逗号分隔的字符串,建议要么把参数拆成多个,要么改用表值参数
内容的提问来源于stack exchange,提问作者tRuEsAtM
相关产品推荐
相关产品推荐

