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

Verificar yActualizar Datos

Estas en el tema de Verificar yActualizar Datos en el foro de SQL Server en Foros del Web. Hola amigos, por favor me pueden ayudar en una consulta sql, pasa que tengo una tabla que se llama txtIngresoActivo -> Codigo, CodActivo, Descripción, Serie, ...
  #1 (permalink)  
Antiguo 17/07/2014, 12:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Verificar yActualizar Datos

Hola amigos, por favor me pueden ayudar en una consulta sql, pasa que tengo una tabla que se llama txtIngresoActivo -> Codigo, CodActivo, Descripción, Serie, FechaIngreso, Estado.

El CodActivo lo saco de una tabla que se llama tztActivo

Al insertar un ingreso de activo los campos de la tabla txtIngresoActivo quedan así -> Codigo=1, CodActivo=101, Descripción=Computadora Portatil, Serie=200-10-1-1, FechaIngreso=16-07-2014, Estado=Creado

En mi código visual .NET tengo un método que me permite aprobar esta transacción, osea que actualizo el campo Estado de la tabla txtIngresoActivo -> Estado=Aprobado

Lo que quiero por favor que me ayuden es en lo siguiente, en un procedimiento almacenado que permita actualizar los datos de la tabla txtIngresoActivo solo si el Estado de ese registro se encuentra en Estado=Creado y la Serie no se repita en ningún otro registro.

Este procedimiento lo hice yo pero me sale un error.

Código SQL:
Ver original
  1. CREATE PROCEDURE ModificarIngresoActivo
  2. @Codigo  INT,
  3. @CodAct INT,
  4. @Descripcion VARCHAR(500),
  5. @Serie VARCHAR(50),
  6. @FechaIngreso DATE,
  7. @Estado VARCHAR(50)
  8. AS
  9. DECLARE
  10.     @resultado bit     
  11.     IF (SELECT * FROM txtIngresoActivo WHERE Codigo = @Codigo ) = 'Aprobado'
  12.     BEGIN
  13.         SET @resultado = 1
  14.     END
  15.     ELSE
  16.     BEGIN
  17.         IF EXISTS (SELECT * FROM txtIngresoActivo WHERE Serie = @Serie)
  18.         BEGIN
  19.             SET @resultado = 2
  20.         END
  21.         ELSE
  22.         BEGIN
  23.             SET @resultado = 0
  24.             UPDATE txtIngresoActivo SET CodAct = @CodAct, Descripcion=@Descripcion,
  25.             Serie = @Serie, FechaIngreso = @FechaIngreso WHERE Codigo = @Codigo
  26.         END
  27.     END
  28.         SELECT @resultado
  29. GO
[/PHP]

Al ejecutar este procedimiento me sale: " Solo se puede especificar una expresión en la Lista de Selección cuando la subconsulta no se especifica con EXISTS"

gracias.

Última edición por gnzsoloyo; 17/07/2014 a las 12:45
  #2 (permalink)  
Antiguo 17/07/2014, 12:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Verificar yActualizar Datos

Código SQL:
Ver original
  1. IF (SELECT * FROM txtIngresoActivo WHERE Codigo = @Codigo ) = 'Aprobado'
¿En serio?
¿txtIngresoActivo tiene un único campo?

Si no lo tiene, entonces no puedes pretender que el "*" devuelva solamente "Aprobado"...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/07/2014, 13:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Verificar yActualizar Datos

gracias gnzsoloyo.
ya me di cuenta de mi error.

Etiquetas: campo, registro, select, siguiente, sql, tabla, verificar
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 03:39.