Volcar una Datatable a SQL.

21/09/2007 - 17:32 por Marcelo Clavero | Informe spam
Estimados:

En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo debo
hacer mediante un Store Procedure.

Una solución muy precaria sería que el SP reciba como parámetros cada campo
del registro y hacer un INSERT para cada registro (1 x vez).lo cual
implica conectarse a la base tantas veces como registros haya en al
DataTable. brrrrr
Me rehuso a hacer tal cosa.

Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
pero debo usar el SQL 2000 si o si.
Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
recibir como parámetro en un SP ????
Qué solución me recomiendan ????

Desde ya muchas gracias.
Y reciban mis saludos.

Marcelo

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
21/09/2007 - 18:14 | Informe spam
Posiblemente los amigos de los foros de programación .NET tengan claro el
tema... si no recuerdo mal, si usted tiene una DataTable en un DataSet, puede
impactar directamente y en una sola operación, los datos del dataset en la
base.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/p...o.Larriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Marcelo Clavero" wrote:

Estimados:

En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo debo
hacer mediante un Store Procedure.

Una solución muy precaria sería que el SP reciba como parámetros cada campo
del registro y hacer un INSERT para cada registro (1 x vez).lo cual
implica conectarse a la base tantas veces como registros haya en al
DataTable. brrrrr
Me rehuso a hacer tal cosa.

Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
pero debo usar el SQL 2000 si o si.
Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
recibir como parámetro en un SP ????
Qué solución me recomiendan ????

Desde ya muchas gracias.
Y reciban mis saludos.

Marcelo



Respuesta Responder a este mensaje
#2 Alejandro Mesa
21/09/2007 - 18:16 | Informe spam
Marcelo Clavero,

Tendras que esperar a que salga SQL Server 2008, donde tendremos parametro
tipo tabla. Mientras tanto, puedes pasar un documento XML hacia un
procedimiento almacenado y en el usar OPENXML para procesar el documento.
Chequea los libros en linea, donde encontraras ejemplos sobre el uso the
OPENXML.

Introduction to XML Bulk Load (SQLXML 4.0)
http://technet.microsoft.com/en-us/...71721.aspx

AMB

"Marcelo Clavero" wrote:

Estimados:

En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo debo
hacer mediante un Store Procedure.

Una solución muy precaria sería que el SP reciba como parámetros cada campo
del registro y hacer un INSERT para cada registro (1 x vez).lo cual
implica conectarse a la base tantas veces como registros haya en al
DataTable. brrrrr
Me rehuso a hacer tal cosa.

Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
pero debo usar el SQL 2000 si o si.
Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
recibir como parámetro en un SP ????
Qué solución me recomiendan ????

Desde ya muchas gracias.
Y reciban mis saludos.

Marcelo



Respuesta Responder a este mensaje
#3 Marcelo Clavero
21/09/2007 - 20:27 | Informe spam
Estimados:

Voy a probar primero lo que dice Gustavo.
Por lo que averigué, creo que con un "data adapter" vinculado al DataTable
es posible impactar al SQL en una sola operación.

Si no me anda, veré de usar la alternativa que plantea Alejandro con el XML.
De paso me quedo tranquilo sabiendo que hasta el 2008 no tendremos tipos
"tabla" para usar como parámetro de un SP(pensé que ya lo habían
agregado en el 2005).

Mil gracias y reciban mis saludos.
Marcelo




"Marcelo Clavero" escribió en el mensaje
news:ucyNnSG$
Estimados:

En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo
debo hacer mediante un Store Procedure.

Una solución muy precaria sería que el SP reciba como parámetros cada
campo del registro y hacer un INSERT para cada registro (1 x vez).lo
cual implica conectarse a la base tantas veces como registros haya en al
DataTable. brrrrr
Me rehuso a hacer tal cosa.

Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
pero debo usar el SQL 2000 si o si.
Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
recibir como parámetro en un SP ????
Qué solución me recomiendan ????

Desde ya muchas gracias.
Y reciban mis saludos.

Marcelo


Respuesta Responder a este mensaje
#4 Alejandro Mesa
22/09/2007 - 01:50 | Informe spam
Hola Marcelo,

Si mal no recuerdo de mis tiempos de vb / vb.net, la operacion del data
adapter se realiza fila a fila, detras del escenario. Eso lo puedes saber si
usas SQL Profiler para monitorear las instruciones enviadas por ADO.NET hacia
el motor de SS.

Puedes asociar una instruccion ïnsert"o un procedimineto almacenado, pero
esta accion se lleva a cabo fila a fila.

AMB

"Marcelo Clavero" wrote:

Estimados:

Voy a probar primero lo que dice Gustavo.
Por lo que averigué, creo que con un "data adapter" vinculado al DataTable
es posible impactar al SQL en una sola operación.

Si no me anda, veré de usar la alternativa que plantea Alejandro con el XML.
De paso me quedo tranquilo sabiendo que hasta el 2008 no tendremos tipos
"tabla" para usar como parámetro de un SP(pensé que ya lo habían
agregado en el 2005).

Mil gracias y reciban mis saludos.
Marcelo




"Marcelo Clavero" escribió en el mensaje
news:ucyNnSG$
> Estimados:
>
> En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
> sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo
> debo hacer mediante un Store Procedure.
>
> Una solución muy precaria sería que el SP reciba como parámetros cada
> campo del registro y hacer un INSERT para cada registro (1 x vez).lo
> cual implica conectarse a la base tantas veces como registros haya en al
> DataTable. brrrrr
> Me rehuso a hacer tal cosa.
>
> Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
> pero debo usar el SQL 2000 si o si.
> Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
> recibir como parámetro en un SP ????
> Qué solución me recomiendan ????
>
> Desde ya muchas gracias.
> Y reciban mis saludos.
>
> Marcelo
>
>



Respuesta Responder a este mensaje
#5 principiante
22/09/2007 - 01:56 | Informe spam
Es como te dice Alejandro. Siempre se verifica registro a registro aunque
no lo parezca.

Jose TH


"Marcelo Clavero" escribió en el mensaje
news:ekIrS0H$
Estimados:

Voy a probar primero lo que dice Gustavo.
Por lo que averigué, creo que con un "data adapter" vinculado al DataTable
es posible impactar al SQL en una sola operación.

Si no me anda, veré de usar la alternativa que plantea Alejandro con el
XML.
De paso me quedo tranquilo sabiendo que hasta el 2008 no tendremos tipos
"tabla" para usar como parámetro de un SP(pensé que ya lo habían
agregado en el 2005).

Mil gracias y reciban mis saludos.
Marcelo




"Marcelo Clavero" escribió en el mensaje
news:ucyNnSG$
Estimados:

En una aplicación ASP.NET 2.0 tengo una Datatable que la quiero impactar
sobre una tabla SQL 2000 (ambas tienen idéntica estructura), y esto lo
debo hacer mediante un Store Procedure.

Una solución muy precaria sería que el SP reciba como parámetros cada
campo del registro y hacer un INSERT para cada registro (1 x vez).lo
cual implica conectarse a la base tantas veces como registros haya en al
DataTable. brrrrr
Me rehuso a hacer tal cosa.

Por ahi leí que el SQL 2005 tiene una estructura de variable tipo "Tabla"
pero debo usar el SQL 2000 si o si.
Hay alguna estructura de datos (tipo tabla, matriz, etc) que se pueda
recibir como parámetro en un SP ????
Qué solución me recomiendan ????

Desde ya muchas gracias.
Y reciban mis saludos.

Marcelo






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida