Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como hacer un split de un dato que lelga a un store

Estas en el tema de Como hacer un split de un dato que lelga a un store en el foro de SQL Server en Foros del Web. Tengo un select de empresas y segun la que se selecciona tengo que armar un arbol, para ello tengo el SP ya armado pero ahora ...
  #1 (permalink)  
Antiguo 09/03/2007, 12:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 203
Antigüedad: 20 años, 8 meses
Puntos: 0
Como hacer un split de un dato que lelga a un store

Tengo un select de empresas y segun la que se selecciona tengo que armar un arbol, para ello tengo el SP ya armado pero ahora el combo paso a ser de seleccion multiple, por lo que los datos me pueden venis con los id separados por comas y no encontro la forma para que utilizando el mismo SP pueda traer los datos.
Este es el SP que tengo
Código:
CREATE PROCEDURE arbolNivel1
@empresa int = null
AS
SELECT distinct '0e'+ CONVERT(VARCHAR, EmpreNro) nroid, '0' nroidPadre, Descrip titulo, 0 tipo, EmpreNro cod 
FROM empresas 
where EmpreNro = @empresa or (@empresa is null and emprenro in (select emprenro from unidades group by emprenro))
ORDER BY titulo
GO
probe cambiando el tipo del parametro de entrada a varchar, y en el where poner EmpreNro IN (@empresa) pero me dice que esto no es valido.
Espero que me puedan ayudar.
Muchas gracias
  #2 (permalink)  
Antiguo 11/03/2007, 12:05
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Como hacer un split de un dato que lelga a un store

Necesitas usar el SQL dinámico. http://www.sommarskog.se/dynamic_sql.html

DECLARE @sql Varchar(1000)
SET @sql = 'SELECT *
FROM tabla
WHERE id_empresa IN ('+ @empresas +')'

EXEC sp_executesql @sql
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 31/08/2007, 13:31
 
Fecha de Ingreso: agosto-2003
Mensajes: 203
Antigüedad: 20 años, 8 meses
Puntos: 0
Re: Como hacer un split de un dato que lelga a un store

Encontré otra forma de pasar un listado de datos a un SP, por ejemplo para hacer un insert múltiple, o para hacer la búsqueda como en el otro caso.

En el asp, pasamos el listado separados por comas a un xml
Código:
idSubTemaXML = "<SubTemas><SubTema><id>" & replace(Request("idSubTema"), ",", "</id></SubTema><SubTema><id>") & "</id></SubTema></SubTemas>"
y el en SP

Código:
CREATE procedure insertAlgo
@IdSubTemaXML text,
@IdM int

as

declare @coutSubTema int 
declare @SubTema table(idSubTema int)
declare @idocSubTema int

exec sp_xml_preparedocument @idocSubTema OUTPUT, @IdSubTemaXML
insert into @SubTema(idSubTema)
select id from openxml(@idocSubTema, '/SubTemas/SubTema', 2) with (id int)
exec sp_xml_removedocument @idocSubTema
select @coutSubTema = count(*) from @SubTema

if @coutSubTema > 0
begin
  insert into SubTema(idM, idSubTema)
  select @IdM, idSubTema from @SubTema
end
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:58.