Como Recorrer una Variable Tipo Table???

09/12/2005 - 02:39 por Developers | Informe spam
Eso mismo amigos, existe alguna manera de recorrer el contenido de una
variable declarada como Table
Tengo un Resultado que ya logre almacenar los resultados en una variable
Tipo table pero necesito recorrerla para lanzar unas pequeñas
actualizaciones en otras tablas("algo parecido a como se recorre los
cursores temporal").

Nota.
La variable Table siempre va contener 0 a 30 registros como maximo.

Gracias

Preguntas similare

Leer las respuestas

#1 Alfredo Crisostomo
09/12/2005 - 12:52 | Informe spam
En SQL server no se "recorre" una tabla, a menos que se use un cursor, el
cual no es muy recomendado. Todo es basado en conjuntos. Hay que olvidarse
del concepto: "registro" y pensar que todo es un "conjunto" para poder
entender SQL server. Para eso que quieres, trata de hacer un UPDATE
poniendo un FROM y un JOIN para traer los datos desde tu tabla temporal.


"Developers" escribió en el mensaje
news:%23$NrnFG$
Eso mismo amigos, existe alguna manera de recorrer el contenido de una
variable declarada como Table
Tengo un Resultado que ya logre almacenar los resultados en una variable
Tipo table pero necesito recorrerla para lanzar unas pequeñas
actualizaciones en otras tablas("algo parecido a como se recorre los
cursores temporal").

Nota.
La variable Table siempre va contener 0 a 30 registros como maximo.

Gracias
Respuesta Responder a este mensaje
#2 Eladio Rincón
09/12/2005 - 13:03 | Informe spam
al final tendrás que definir un cursor; ¿para qué defines la variable tipo
tabla? ¿no puedes definir directamente el cursor con la sentencia select que
"rellena" la variable tipo table?

por cierto, si explicas el proceso igual evitamos usar cursores ;)

Eladio Rincón

SQL Server MVP, Mentor
Solid Quality Learning
http://www.SolidQualityLearning.com

"Solid Quality Learning is the trusted global provider of advanced education
and solutions for the entire Microsoft database platform"


"Developers" wrote in message
news:%23$NrnFG$
Eso mismo amigos, existe alguna manera de recorrer el contenido de una
variable declarada como Table
Tengo un Resultado que ya logre almacenar los resultados en una variable
Tipo table pero necesito recorrerla para lanzar unas pequeñas
actualizaciones en otras tablas("algo parecido a como se recorre los
cursores temporal").

Nota.
La variable Table siempre va contener 0 a 30 registros como maximo.

Gracias
Respuesta Responder a este mensaje
#3 Developers
09/12/2005 - 16:57 | Informe spam
Si Entiendo que el Concepto recorrer No existe en un Motor de Datos y que
solo se debe pensar en Conjunto de Datos, pero ya le di vueltas al problema
y no encuentro una solucion.
Haber tengo una Consulta que me devuleve este resultado

Documento : X23 Fecha 12/11/2005
Codigo Descripcion Saldo_Pendiente
AAAA Solo A 30
BBBB Solo B 25
CCCC Solo C 0

Ahora ese documento pendiente necesito despacharlo automaticamente y para
eso necesito Comprobar que haya Stock de cada producto que tiene Saldo
Pendiente.
Para Eso tengo otra Consulta que x Cada Codigo de Producto me devuelve
Esto

Codigo Stock
AAAA 10
BBBB 5
CCCC 100

Entonces necesito que los productos que tienen saldo pendientes se vaya
reduciendo su saldo de acuerdo al stock que existe en ese momento.

Facil seria que lo desarrolle en la misma aplicacion, pero me estan
solicitando que se realize en forma automatica y la forma mas optima que
encuentro es que lo haga el mismo motor de datos con una tarea programa.

Gracias y espero que con esta explicacion me puedan ayudar


Developers
Respuesta Responder a este mensaje
#4 qwalgrande
11/12/2005 - 17:03 | Informe spam
Hola.

Tienes varias cosas aquí:
- Primero: Del pedido que te llega, necesitas ver si tienes stock de todos
los productos. Yo supondré que si no puedes sacar el pedido completo no lo
puedes sacar.
- Segundo: Procesar el pedido, actualizando el stock.

No sé si tienes los campos como yo los voy a nombrar, pero a ver si esto de
una pista de por dónde seguir. Voy a partir de que tienes una tabla de
pedidos, otra de detalle de pedidos y otra de stock, de lo que nos has
comentado es posible que no sea así, pero al menos tienes forma de obtener
dichos datos.

if exists(
select S.Codigo
from
DetallePedido D inner join
Stock S on D.Codigo = S.Codigo
where
D.Documento = 23 --Aquí tendrías que poner una variable y sustituir
S.Stock < D.Saldo_Pendiente
)
raiserror('No hay stock para satisfacer el pedido', 1, 16)
else --Tengo stock, hay que actualizar el stock y marcar el pedido como
procesado
begin
begin tran
update S set Stock = S.stock - Saldo_Pendiente
from
DetallePedido D inner join
Stock S on D.Codigo = S.Codigo
where D.Documento = 23

update Pedido set Estado = 'Procesado' where Documento = 23
commit tran
end


qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Developers" escribió en el mensaje
news:uQ2lsjN$
Si Entiendo que el Concepto recorrer No existe en un Motor de Datos y que
solo se debe pensar en Conjunto de Datos, pero ya le di vueltas al
problema
y no encuentro una solucion.
Haber tengo una Consulta que me devuleve este resultado

Documento : X23 Fecha 12/11/2005
Codigo Descripcion Saldo_Pendiente
AAAA Solo A 30
BBBB Solo B 25
CCCC Solo C 0

Ahora ese documento pendiente necesito despacharlo automaticamente y para
eso necesito Comprobar que haya Stock de cada producto que tiene Saldo
Pendiente.
Para Eso tengo otra Consulta que x Cada Codigo de Producto me devuelve
Esto

Codigo Stock
AAAA 10
BBBB 5
CCCC 100

Entonces necesito que los productos que tienen saldo pendientes se vaya
reduciendo su saldo de acuerdo al stock que existe en ese momento.

Facil seria que lo desarrolle en la misma aplicacion, pero me estan
solicitando que se realize en forma automatica y la forma mas optima que
encuentro es que lo haga el mismo motor de datos con una tarea programa.

Gracias y espero que con esta explicacion me puedan ayudar


Developers


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida