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. |
Si!
Puedes hacer un insert de un select por ejemplo.
Saludos! |
Umhh... interesante. Y se podría hacer poniendo de alguna forma los valores en la sentencia?? (por curiosidad mas que nada...)
|
Hola.
¿ Te refieres a esto ? Código:
INSERT INTO TABLA (CAMPO1, CAMPO2, CAMPO3...) |
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. |
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 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! |
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. ;) |
La franja horaria es GMT +2. Ahora son las 21:24:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi