在存储过程中有条件地使用 FOR JSON PATH
Conditionally using FOR JSON PATH in stored procedure
我想创建根据输入参数有条件地输出 JSON 的存储过程。是否可以在不必复制 select 语句的情况下完成此操作?
CREATE PROCEDURE myProcedure @outputJson bit
AS
BEGIN
IF outputJson = 1
BEGIN
SELECT col1,
col2,
col3
FROM dbo.MyTable
FOR JSON PATH
END
ELSE
BEGIN
SELECT col1,
col2,
col3
FROM dbo.MyTable
END
END
GO
您可以使用动态 sql 来包含基于参数的 "FOR JSON" 子句。
CREATE PROCEDURE dbo.myProcedure @outputJson bit
AS
BEGIN
DECLARE @sql nvarchar(max) = N'SELECT col1, col2, col3 FROM dbo.MyTable';
IF @outputJson = 1
BEGIN
SET @sql += ' FOR JSON PATH';
END
EXECUTE sp_executesql @sql;
END
GO
我想创建根据输入参数有条件地输出 JSON 的存储过程。是否可以在不必复制 select 语句的情况下完成此操作?
CREATE PROCEDURE myProcedure @outputJson bit
AS
BEGIN
IF outputJson = 1
BEGIN
SELECT col1,
col2,
col3
FROM dbo.MyTable
FOR JSON PATH
END
ELSE
BEGIN
SELECT col1,
col2,
col3
FROM dbo.MyTable
END
END
GO
您可以使用动态 sql 来包含基于参数的 "FOR JSON" 子句。
CREATE PROCEDURE dbo.myProcedure @outputJson bit
AS
BEGIN
DECLARE @sql nvarchar(max) = N'SELECT col1, col2, col3 FROM dbo.MyTable';
IF @outputJson = 1
BEGIN
SET @sql += ' FOR JSON PATH';
END
EXECUTE sp_executesql @sql;
END
GO