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

Procedimientos En SQL Server

Estas en el tema de Procedimientos En SQL Server en el foro de Bases de Datos General en Foros del Web. Hola. Estoy haciendo un procedimiento en sql server, en este entran dos valores y con estos hacen varias consulta. El problema esta en que no ...
  #1 (permalink)  
Antiguo 27/07/2015, 14:39
Avatar de Andreslrz  
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 7 meses
Puntos: 2
Busqueda Procedimientos En SQL Server

Hola.

Estoy haciendo un procedimiento en sql server, en este entran dos valores y con estos hacen varias consulta.

El problema esta en que no me pone los datos de las consultas en los parametros de salida.

tengo

Código SQL:
Ver original
  1. @entrada1 VARCHAR(20),
  2. @entrada2 VARCHAR(20),
  3. @salida1 VARCHAR(30) output,
  4. @salida2 NUMERIC output,
  5. @salida3 NUMERIC output
y las consultas
Código SQL:
Ver original
  1. BEGIN
  2.  SELECT @salida1=dato1 FROM tabla1 WHERE clave=@entrada1;
  3.  SELECT @salida2=MAX(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND  clave=@entrada2;
  4.  SELECT @salida3=MIN(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND   clave=@entrada2;
  5. END

de estos datos solo salida1 tiene valor, el resto retorna nulo
  #2 (permalink)  
Antiguo 27/07/2015, 14:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Procedimientos En SQL Server

Código SQL:
Ver original
  1. BEGIN
  2.  SELECT @salida1=dato1 FROM tabla1 WHERE clave=@entrada1;
  3.  SELECT @salida2=MAX(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND  clave=@entrada2;
  4.  SELECT @salida3=MIN(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND   clave=@entrada2;
  5.  
  6. SELECT @salida1
  7. SELECT @salida2
  8. SELECT @salida3
  9.  
  10. END

prueba con eso :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 27/07/2015, 15:27
Avatar de Andreslrz  
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Procedimientos En SQL Server

Ya lo intente tambien, por eso me parece raro que no funcione, probe las consultas con los datos de entrada y retornan los valores pero en el procedimiento no funciona.

He probado:

Código SQL:
Ver original
  1. SET @salida2 = SELECT MAX(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND  clave=@entrada2;

Y con
Código SQL:
Ver original
  1. WITH maxVal AS (
  2.   SELECT dato1 FROM tabla2 WHERE clavet1=@entrada1 AND  clave=@entrada2;
  3. )
  4. SELECT @salida2=MAX(dato1)  FROM maxVal

y en ninguno retorna datos.
  #4 (permalink)  
Antiguo 27/07/2015, 15:34
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Procedimientos En SQL Server

setea tus variables antes de usarlas:

Código SQL:
Ver original
  1. BEGIN
  2. SET @salida1=''
  3. SET @salida2=''
  4. SET @salida3=''
  5.  
  6.  SELECT @salida1=dato1 FROM tabla1 WHERE clave=@entrada1;
  7.  SELECT @salida2=MAX(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND  clave=@entrada2;
  8.  SELECT @salida3=MIN(dato1) FROM tabla2 WHERE clavet1=@entrada1 AND   clave=@entrada2;
  9.  
  10. SELECT @salida1
  11. SELECT @salida2
  12. SELECT @salida3
  13.  
  14. END
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 27/07/2015, 15:56
Avatar de Andreslrz  
Fecha de Ingreso: septiembre-2008
Mensajes: 99
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Procedimientos En SQL Server

ya lo intente y tampoco, esto solo me pasa cuando hago un sum o max en la consulta.
  #6 (permalink)  
Antiguo 27/07/2015, 16:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Procedimientos En SQL Server

Aver si hago esto:

Código SQL:
Ver original
  1. CREATE TABLE #Cliente (
  2.   DNI_Cliente VARCHAR(45) NOT NULL ,
  3.  Nombre VARCHAR(45) )
  4.  
  5.  INSERT INTO #cliente VALUES ('1234','Libras')
  6.  INSERT INTO #cliente VALUES ('12345','Libras1')
  7.  
  8.  DECLARE @variable VARCHAR(MAX)
  9.  SET @variable=''
  10.  SET @variable=(SELECT MAX(nombre) FROM #Cliente)

No me regresa ningun valor, pero si le agrego esto:


Código SQL:
Ver original
  1. CREATE TABLE #Cliente (
  2.   DNI_Cliente VARCHAR(45) NOT NULL ,
  3.  Nombre VARCHAR(45) )
  4.  
  5.  INSERT INTO #cliente VALUES ('1234','Libras')
  6.  INSERT INTO #cliente VALUES ('12345','Libras1')
  7.  
  8.  DECLARE @variable VARCHAR(MAX)
  9.  SET @variable=''
  10.  SET @variable=(SELECT MAX(nombre) FROM #Cliente)
  11.  
  12.   SELECT @variable

ahi si me regresa el valor de la variable, prueba imprimiendo tus variables.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: procedimientos, select, server, sql, tabla, valor
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 22:58.