提问人:Bala 提问时间:11/1/2023 最后编辑:Dale KBala 更新时间:11/2/2023 访问量:33
在存储过程中打印 TABLE TYPE 参数
Print TABLE TYPE parameter in Stored Procedure
问:
我需要将 JSON 响应从 API 传递到存储过程。因此,我创建了一个 TABLE TYPE 并尝试在此过程中使用它。但是我收到一个错误
必须声明标量变量“@mydata”。
CREATE TYPE [dbo].[apidata] AS TABLE (
[response] [nvarchar](max) NULL
)
CREATE PROCEDURE [dbo].[usp_API] (
@mydata dbo.apidata READONLY
)
AS
BEGIN
PRINT @mydata
END
GO
答:
1赞
siggemannen
11/1/2023
#1
不能打印表变量,只能打印标量表达式,这就是 SQL Server 告诉您找不到标量变量的原因。
但是你可以从中选择它,并像使用普通表格一样使用它:
select * From @mydata
顺便说一句,您也可以将 JSON 作为字符串传递并使用 OPENJSON 将其粉碎。
评论
select * From @mydata