我有一個存盤sp_proc_1程序,它接受一些引數,比如@val1,@val2和@val3. 我想使用這些值創建一個 JSON 物件@val1,@val2這樣我就可以將該 JSON 物件作為引數之一傳遞給sp_proc2我將從中呼叫 的第二個存盤程序sp_proc1。請指導。
我認為的方式是將它們插入@val1到@val2a 中temp_table,然后從其中選擇它們temp_table到 JSON 物件中。我想對了嗎?
uj5u.com熱心網友回復:
該陳述句取決于預期 JSON 輸出的格式,但可能的選項是FOR JSON PATH:
CREATE PROCEDURE Proc_1
@val1 int,
@val2 varchar(100),
@val3 datetime
AS
BEGIN
DECLARE @json nvarchar(max)
SET @json = (SELECT @val1 AS val1, @val2 AS val2 FOR JSON PATH)
EXEC Proc_2 @json
END
生成的 JSON 是:
[{"val1":1,"val2":"Test value"}]
uj5u.com熱心網友回復:
一種解決方案是使用FOR JSON; 您只需要構建適當的選擇陳述句:
declare @val1 int = 1234;
declare @val2 varchar(100) = 'foobar';
declare @val3 datetime2(3) = sysdatetime();
declare @json nvarchar(max) = (
select *
from (values (@val1, @val2, @val3)) as v(val1, val2, val3)
for json auto, without_array_wrapper
);
select @json;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426814.html
