Ver Mensaje Individual
  #6  
Antiguo 11-11-2010
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Reputación: 23
BlueSteel Va por buen camino
Aqui te dejo el ejemplo
Código SQL [-]
Create TRIGGER [Producto_Update]
   ON  [dbo].[Producto]
   FOR Update
AS 
BEGIN
    SET NOCOUNT ON;

    -- Sentencia que cuenta cuantos registros se eliminaran..
    -- Si son más de uno.. da error
/*    if ((Select Count(*) From Deleted) > 1) 
    Begin
         RaisError(' Quiere Eliminar mas de uno',16,1)
         Rollback Transaction 
    End
    
    -- Sentencia que verifica que el dato no este en otra tabla
    -- de lo contrario no elimina...
    if Exists(Select 1 From DVenta
              Where DVenta.Pro_Codigo in
                    (Select Deleted.Pro_Codigo From Deleted))
    Begin
         RaisError(' No se puede eliminar',16,1)
         Rollback Transaction 
    End


    if Exists(Select 1 From Venta, DVenta, updated
              Where Venta.Vta_Numero = DVenta.Vta_Numero
                And DVenta.Pro_Codigo = Updated.Pro_Codigo)
    Begin
         RaisError(' Existe',16,1)
         Rollback Transaction 
    End
*/
   -- Declaración de Cursores
    
    Declare @Codigo Int,
            @Descripcion Varchar(10)

    Declare  Cur_Prueba Cursor
    For Select Pro_Codigo, Pro_Detalle For Update

    Open Cur_Prueba

    Fetch Next From Cur_Prueba Into @Codigo, @Descripcion

    While @@Fetch_Status = 0
    Begin
         /*
         */
         Fetch Next From Cur_Prueba Into @Codigo, @Descripcion
    End

    Close Cur_Prueba
    DealLocate Cur_Prueba    
    
END

bueno, esto es un ejemplo que vi en un curso de SQL.... aunque aqui utiliza el Update... tendrias que cambiar por Delete....

Salu2
__________________
BlueSteel
Responder Con Cita