SQL Server - variables de sp para varios valores

   
Vista:

variables de sp para varios valores

Publicado por javier (1 intervención) el 11/11/2008 00:12:09
Hola, buenas noches.. tengo un problema que intentaré clarificar para ver si alguien puede darme una mano.

Tengo una tabla con Documentos (ej Facturas, con PK IdFactura), tengo otra tabla llamada Cabecera (PK IdCabecera int identity). Esta última tabla se carga con la generación de un txt que contiene varios datos y entre ellos las facturas incluídas.

Ahora, tengo otra tabla que se llama Cabecera_Documentos, y en esta tengo los siguientes campos (IdCabecera int, IdFactura).

Los pasos son los siguientes dentro de mi sistema.
En algunos momentos cargo las facturas y ahí termina una parte del proceso.
Luego, en otro momento cualquiera, tengo que generar el txt (Que va a contener varios datos y varias facturas) y cargo la tabla Cabecera con varios datos, entre ellos el IDCabecera que al ser identity es autonumerado.
En este mimo momento, cuando cargo la tabla cabecera, tengo que cargar la tabla Cabecera_Documentos simplemente con el IdCabecera generado recientemente y con la totalidad de los IdFacturas que se incluyeron en el txt.

El problema es que no se como pasar varios (Sin saber la cantidad justa) IdFacturas dentro de un sp y encima dentro de la misma transacción, porque no podría cargar la tabla Cabecera y que la tabla cabecera_Documentos me quede sin cargar o cargada por la mitad.
Se entiende?
Es decir, tendría dentro de la misma transacción la carga de la tabla Cabecera y la carga de la tabla cabecera_Documento(Esta última con la particularidad que serán n registros, determinados por la cantidad de facturas incluídas en el txt
Espero haber sido claro... Espero alguien me pueda dar una mano o idea con esto.

Saludos y Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:variables de sp para varios valores

Publicado por pacopaz (131 intervenciones) el 11/11/2008 01:42:43
Si usas sql server 2005/2008 lo puedes hacer mediante una variable tipo TABLE.
Para más información refierete a esta página:
http://msdn.microsoft.com/en-us/library/ms175010.aspx

De lo contrario, puedes pasar todos los identificadores de facturas en un varchar. Considerando que id puede tener unas 5 posiciones (mas un separador) puedes pasar unos 1300 identificadores sin problemas y luego separarlos usando charindex y substring.
Para más información refierete a estas páginas:
http://msdn.microsoft.com/en-us/library/ms186323.aspx
http://msdn.microsoft.com/en-us/library/ms187748.aspx

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar