Eu uso algo como o seguinte para preparar um bloco de json:
SET @json = (SELECT
@varchar1 as MyVarchar1,
@varchar2 as MyVarchar2,
GetUtcDate() as MyTime FOR JSON PATH);
O Visual Studio reclama que é uma "subconsulta não escalar no lugar de escalar" - existe uma maneira de escrevê-la para que não gere um aviso?
No seu cenário, por estar usando variáveis, é certo que sua consulta retornará apenas uma linha (escalar), então você pode ignorar este aviso.
Para suprimir o aviso, você pode adicionar um
TOP 1
à sua consulta, mas não é necessário .Você pode encontrar mais em https://documentation.red-gate.com/codeanalysis/execution-rules/ei003