Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 08-ene-2007, 13:51   #1 (permalink)
Moderador
Mithrandir llegará a ser famoso muy prontoMithrandir llegará a ser famoso muy pronto
 
Avatar de Mithrandir
 
Fecha de Ingreso: abril-2003
Mensajes: 12.108
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
Mithrandir está desconectado   Responder Citando
Antiguo 08-ene-2007, 14:18   #2 (permalink)
Colaborador
Andres95 tiene algunos puntos positivos de karma
 
Avatar de Andres95
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.114
Re: SQL Dinámico: Regresa valores con sp_executesql

Orale, este ejemplo si esta muy bueno...
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
Andres95 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:49.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93