Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Exist select then select

Estas en el tema de Exist select then select en el foro de SQL Server en Foros del Web. Hola compañeros, espero me puedan ayudar, tengo un procedimiento y estoy tratando de dejarlo lo mas rapido posible... En el procedimiento tengo lo siguiente: @import ...
  #1 (permalink)  
Antiguo 06/08/2015, 14:22
 
Fecha de Ingreso: enero-2013
Mensajes: 176
Antigüedad: 11 años, 10 meses
Puntos: 2
Exist select then select

Hola compañeros, espero me puedan ayudar, tengo un procedimiento y estoy tratando de dejarlo lo mas rapido posible...


En el procedimiento tengo lo siguiente:

Código SQL:
Ver original
  1. IF EXISTS ( SELECT a.nombre, a.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  2.                                c.almacen, c.descripcion
  3.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  4.                               INNER JOIN tabla3 AS c ON b.x = c.x)
  5.       BEGIN
  6.              SELECT a.nombre, a.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  7.                                c.almacen, c.descripcion
  8.               FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  9.                               INNER JOIN tabla3 AS c ON b.x = c.x
  10.      END
  11.      ELSE
  12.      BEGIN
  13.           IF EXISTS ( SELECT P.nombre, p.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  14.                                c.almacen, c.descripcion
  15.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  16.                               INNER JOIN tabla3 AS c ON b.x = c.x INNER JOIN P ON p.x = a.x)
  17.            BEGIN
  18.              SELECT P.nombre, p.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  19.                                c.almacen, c.descripcion
  20.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  21.                               INNER JOIN tabla3 AS c ON b.x = c.x INNER JOIN P ON p.x = a.x
  22.            END
  23.   END

El caso es que quiero mostrar lo que esta en el select, pero de esta forma se esta procesando 2 veces una simple consulta...... y son miles de registros....


alguien tiene otra opción de como saber si la consulta regresa algo y al mismo tiempo mostrarla con el select?
__________________
Define tus intereses, se curioso, investiga, comete errores, aprende, practica, mejora, enseña y vuelve a comenzar....
  #2 (permalink)  
Antiguo 08/08/2015, 12:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Exist select then select

Código SQL:
Ver original
  1. IF EXISTS ( SELECT 1
  2.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  3.                               INNER JOIN tabla3 AS c ON b.x = c.x)
  4.       BEGIN
  5.              SELECT a.nombre, a.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  6.                                c.almacen, c.descripcion
  7.               FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  8.                               INNER JOIN tabla3 AS c ON b.x = c.x
  9.      END
  10.      ELSE
  11.      BEGIN
  12.           IF EXISTS ( SELECT 1
  13.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  14.                               INNER JOIN tabla3 AS c ON b.x = c.x INNER JOIN P ON p.x = a.x)
  15.            BEGIN
  16.              SELECT P.nombre, p.dir, a.telefono, b.nombre, b.precio, b.total, b.descuento,
  17.                                c.almacen, c.descripcion
  18.                    FROM tabla1 AS a INNER joint tabla2 AS b ON a.x = b.x
  19.                               INNER JOIN tabla3 AS c ON b.x = c.x INNER JOIN P ON p.x = a.x
  20.            END
  21.   END

Con eso no ocupas toda la sentencia en el select ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: exist, procedimiento, registro, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:01.