Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2004
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
Post 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 ??

Gracias y saludos a todos/as.
__________________
Toni | blog
Responder Con Cita
  #2  
Antiguo 27-07-2004
Coco Coco is offline
Miembro
 
Registrado: jul 2004
Ubicación: Argentina
Posts: 83
Poder: 20
Coco Va por buen camino
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))
Responder Con Cita
  #3  
Antiguo 27-07-2004
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
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...
__________________
Toni | blog
Responder Con Cita
  #4  
Antiguo 28-07-2004
bismarito bismarito is offline
Miembro
 
Registrado: jun 2003
Ubicación: Tarija - Cercado
Posts: 47
Poder: 0
bismarito Va por buen camino
Cool

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
__________________
Bismarito
hoy, que tan bueno quiero ser!!
Responder Con Cita
  #5  
Antiguo 28-07-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
En efecto, si los valores a insertar en una sentencia insert provienen de una consulta (insert - select), la clausula values no es necesaria.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #6  
Antiguo 30-07-2004
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
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
__________________
Toni | blog
Responder Con Cita
  #7  
Antiguo 31-07-2004
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
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
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #8  
Antiguo 01-08-2004
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
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.
__________________
Toni | blog
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:56:56.


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
Copyright 1996-2007 Club Delphi