Revisando mi código me encontré con esto... La prueba de que sp_executesql permite regresar valores.
La idea básica es que, de una lista de identificadores de cliente separados por comas, obtenga una lista de nombres de esos clientes (salvo del caso de "**Todos**", donde se regresará lo mismo).
Esto va especialmente para Andrés95, que alguna vez discutíamos el caso
Código:
CREATE PROCEDURE dbo.usp_Ejecutivo_GetClientes(
@id_clientes NVARCHAR(100),
@clientes NVARCHAR(1000) OUTPUT
)AS
DECLARE @sql NVARCHAR(1000)
IF @id_clientes = '**Todos**'
BEGIN
SET @clientes = @id_clientes
END
ELSE
BEGIN
SET @sql = N'SET @clientesOUT = ''''
SELECT @clientesOUT = @clientesOUT + ''; '' + cliente
FROM dbo.tblClientes
WHERE id_cliente IN (' + @id_clientes + ')'
EXEC sp_executesql @sql,
N'@clientesOUT NVARCHAR(2000) OUTPUT',
@clientesOUT = @clientes OUTPUT
SET @clientes = Right(@clientes, LEN(@clientes)-2)
END