FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
inserciones de multiples filas
hola a todos:
es posible crear inserciones de varias filas en una tabla en SQL-server mediante una sola instruccion SQL, sin utilizar ADO? gracias. |
#2
|
||||
|
||||
Si!
Puedes hacer un insert de un select por ejemplo.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Umhh... interesante. Y se podría hacer poniendo de alguna forma los valores en la sentencia?? (por curiosidad mas que nada...)
|
#4
|
||||
|
||||
Hola.
¿ Te refieres a esto ? Código:
INSERT INTO TABLA (CAMPO1, CAMPO2, CAMPO3...) VALUES (:CAMPO1, :CAMPO2, :CAMPO3, ...)
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
Bueno, no es exactamente lo que estoy buscando. Me explico..., cuento con un grán número de datos que recibo por puerto serie y necesito probar si enviando un conjunto de ellos al servidor sql, éste en su total consume menor o igual tiempo que si le envío registro por registro, ya que el tiempo de envío al servidor entre un registro y el siguiente suele ser inferior a 1 ó 2 segundos.
Por lo que he visto hasta ahora, parece que es necesario que este tipo de inserts, se deben realizar desde un archivo de texto o desde una consulta previa, pero... ¿desde datos contenidos en memoria...? saludos. |
#6
|
||||
|
||||
Hola Tama
Si quieres hacer inserts de valores que no salgan de una sentencia Select, no te va a quedar más remedio que preparar un script con todas las sentencias y lanzar ese script mediante algún componente de acceso a tu motor que te permita tal característica o bien lanzar una a una las sentencia insert desde un componente Query. Espero que te sirva
__________________
Si no tienes algo que decir más importante que el silencio, cállate |
#7
|
||||
|
||||
Si quieres ahorrar tiempo te recomiendo armar un único SQL, hacer u prepare, y ciclar cargando los valores de los registros por parámetros y ejecutándolo. La teoría dice que esto sería lo mas rápido, ya que el motor se evitaría de parsear, evaluar y compilar el SQL para cada insert.
Por otro lado, fíjate que tu pregunta original solo ha servido para que deliremos un poco, te recomiendo formular mejor tus futuras preguntas, y te sugiero que leas la Guía de Estilo. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#8
|
||||
|
||||
Me parece que 1 o 2 segundos debiera ser un tiempo sobrado con cualquier servidor decente para insertar un dato. (De hecho una sola sentencia insert debiera ejecutarse en unos cuantos milisegundos).
Lo que te ha dicho delphi.com.ar es muy importante, y puede ayudarte a reducir "costos" de las inserciones... pero si aún asi es insuficiente, y despues de un rato de datos continuos hay un momento de respiro... podes valerte de tus componentes de acceso, que seguramente tendrán alguna forma de manejar datos en cache. De esta forma vas haciendo insert's sobre el cache, y una vez haya tiempo de "descanso" en la llegada de información, te encargas de aplicarlos a la BD. Ojo, que esto tiene el riesgo de que los datos están solo en la memoria de la máquina cliente, con lo que con un corte de energia o fallo del programa se perderían irremediablemente. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|