Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Stored Procedure de tabla temporal (https://www.clubdelphi.com/foros/showthread.php?t=12777)

tgsistemas 27-07-2004 18:28:34

Stored Procedure de tabla temporal
 
Hola a todos/as :

Trabajo con D5 y SQL 7 (soy muy novato con SQL), me gustaria saber si es posible en un mismo sp crear una tabla temporal y traspasar los datos de un query de dos tablas.
Algo similar a esto :
Código:

create table #selecciona (campo1 char, campo2 int primary key,
                                  campo3 int,campo4 bit)
insert into #selecciona values ((select c.campo1, c.campo2,
                                          t.campo3, t.campo4
                                          from tabla1 c, tabla2 t
                                          where c.campo1 = t.idcampo1))

Lo pruebo en el analizador de consultas de SQL y me da el siguiente error :
Código:

No se permiten subconsultas en este contexto. Sólo se admiten expresiones escalares.
Alguien sabe si es posible esto o deben ser dos procesos ?? :confused:

Gracias y saludos a todos/as.

Coco 27-07-2004 20:55:38

Rta?
 
Prueba con esto a ver si funciona?

create table #selecciona (campo1 char, campo2 int primary key, campo3 int,campo4 bit)GOinsert into #selecciona values ((select c.campo1, c.campo2, t.campo3, t.campo4 from tabla1 c, tabla2 t where c.campo1 = t.idcampo1))

tgsistemas 27-07-2004 21:36:08

Cita:

Empezado por Coco
Prueba con esto a ver si funciona?

create table #selecciona (campo1 char, campo2 int primary key, campo3 int,campo4 bit)GOinsert into #selecciona values ((select c.campo1, c.campo2, t.campo3, t.campo4 from tabla1 c, tabla2 t where c.campo1 = t.idcampo1))

Gracias COCO por tu ayuda, pero sigue produciendo el mismo error...

bismarito 28-07-2004 00:46:40

create table #selecciona (campo1 char, campo2 int primary key, campo3 int,campo4 bit)

insert into #selecciona
select campo1,campo2,campo3,campo4
from (tabla(s))
where (condiciones)

esto tendria que funcionar

__hector 28-07-2004 17:53:23

En efecto, si los valores a insertar en una sentencia insert provienen de una consulta (insert - select), la clausula values no es necesaria.

tgsistemas 30-07-2004 10:04:38

Cita:

Empezado por bismarito
create table #selecciona (campo1 char, campo2 int primary key, campo3 int,campo4 bit)

insert into #selecciona
select campo1,campo2,campo3,campo4
from (tabla(s))
where (condiciones)

esto tendria que funcionar

Lo pruebo en el analizador de consultas con el siguiente codigo :

Código:

create table #selecciona (campo1 char, campo2 int primary key,
                                  campo3 int,campo4 bit)
insert into #selecciona
select c.campo1, c.campo2, t.campo3, t.campo4
from (tabla1 c, tabla2 t)
where (c.campo1 = t.idcampo1)

y al comprobar la sintaxis produce el error :

Código:

Línea 5: sintaxis incorrecta cerca de ','.
Soy novato con SQL y no entiendo por que ahora se queja de las dos tablas y en el query anterior no :confused:

__hector 31-07-2004 21:04:41

No te compliques mas la vida, y usa en el mismo SELECT la clausula INTO tabla, y asi te ahorras tener que crear tu mismo la tabla, y los consecuentes errores que se han derivado de dicha operacion.

Si mal no recuerdo la sintaxis iria:

SELECT campos INTO #tabla FROM tustablas

tgsistemas 01-08-2004 20:13:47

Cita:

Empezado por hector
No te compliques mas la vida, y usa en el mismo SELECT la clausula INTO tabla, y asi te ahorras tener que crear tu mismo la tabla, y los consecuentes errores que se han derivado de dicha operacion.

Si mal no recuerdo la sintaxis iria:

SELECT campos INTO #tabla FROM tustablas

Gracias Hector por la ayuda !!!

Funciona perfectamente.

Gracias a todos/as y si puedo ayudaros en algo...

Saludos.


La franja horaria es GMT +2. Ahora son las 06:37:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi