Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2007, 14:51
Avatar de Mithrandir
Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 8 meses
Puntos: 25
SQL Dinámico: Regresa valores con sp_executesql

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
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche