[OT] SQL para insertar multiples registros

22/01/2004 - 12:34 por Miguel González | Informe spam
Hay alguna forma en SQL para insertar multiples registros con una única sentencia sin utilizar un SELECT de otra tabla?

Me explico. Tendría que insertar X registros en una tabla de dos campos. En el primer campo siempre va el mismo valor, en el segundo el valor es variable. Los valores del segundo campo los tengo en un Array. Por ahora estoy ejecutando tantos "insert" como valores encuentre recorriendo con un "For" el Array, pero esta forma me lleva harto tiempo y me gustaría poder hacerlo "de golpe" con un solo "insert".

Es posible?

Saludos y Gracias!
Miguel
 

Leer las respuestas

#1 Jhonny Vargas P.
22/01/2004 - 13:31 | Informe spam
Hola Miguel,

Conozco dos formas, debe existir mucho más.

La primera es la utilización de Schemas, para esto debes construir un schema
(xml) con la estructura de la base de datos y con la estructura de un
documento xml donde tendrías la información, obviamente deberías construir
un xml con lo que quieres subir al servidor. Tambien esto funcionaría solo
con SQL Server 2000, los tiempos son muy buenos, solo un par de segundos en
subir una cantidad buena de registros (increíble).

La segunda es realizar varios insert seguidos en un string, y cada X insert
lo ejecutas, esto es muy rápido ya que te ejecuta de una sola vez una buena
cantidad de insert y no uno por uno.

ejemplo:
Sql = "Insert Into " & Chr(13)
Sql = Sql & "Insert Into " & Chr(13)
Sql = Sql & "Insert Into " & Chr(13)
...

Sql = Sql & "Insert Into " & Chr(13)

objCon.Execute Sql

Obviamente esto tendría que ir dentro de un ciclo.

Por otra parte te recomiendo consultar en el foro
microsoft.public.es.sqlserver para que ellos te den más alternativas.


Saludos,
Jhonny Vargas P. [MS-MVP]
Santiago de Chile
http://www.mvp.cl




"Miguel González" escribió en el mensaje
news:
Hay alguna forma en SQL para insertar multiples registros con una única
sentencia sin utilizar un SELECT de otra tabla?

Me explico. Tendría que insertar X registros en una tabla de dos campos. En
el primer campo siempre va el mismo valor, en el segundo el valor es
variable. Los valores del segundo campo los tengo en un Array. Por ahora
estoy ejecutando tantos "insert" como valores encuentre recorriendo con un
"For" el Array, pero esta forma me lleva harto tiempo y me gustaría poder
hacerlo "de golpe" con un solo "insert".

Es posible?

Saludos y Gracias!
Miguel

Preguntas similares