Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [SQL SERVER] Trigger Update Colonna

    Ciao,

    Ho una tabella con delle colonne, tra questa ce ne è una chiamata STATO_DOCUMENTO, dovrei creare un trigger nel caso in cui lo stato di questa colonna passi da:

    SF6 a ST6, in questo caso la colonna STATO_DOCUMENTO_MODIFICATO deve diventare ST6

    e viceversa se passa da ST6 a SF6


    codice:
    CREATE TRIGGER CHANGE_
       ON  [dbo].[TABELLA] 
       AFTER UPDATE
    AS 
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
    
        -- Insert statements for trigger here
        DECLARE @statoDocumento NVARCHAR(3)
        DECLARE @idDocumento BIGINT
    	SELECT @statoDocumento = STATO_DOCUMENTO, @idDocumento = ID_DOCUMENTO FROM INSERTED
    	
    	IF (@statoDocumento = 'SF6' OR @statoDocumento = 'ST6')
    	BEGIN
    		UPDATE [TABELLA] SET STATO_DOCUMENTO_MODIFICATO = @statoDocumento WHERE ID_DOCUMENTO = @idDocumento;
    	END
    
    END
    GO
    Purtroppo io riesco solo a vedere come è la colonna in questo momento, ma non riesco a stabilire come era in precedenza...

    Qualcuno sa darmi una mano?


    Grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Ciao,
    non uso sql server ma altri(mysql,postgre).Però puoi fare riferimento al vecchio valore con old.ATTRIBUTO oppure new.ATTRIBUTO.
    nel tuo caso old.STATO_DOCUMENTO_MODIFICATO è il valore che aveva l'attributo prima dell'aggiornamento e new,STATO_DOCUMENTO_MODIFICATO è il valore all'atto dell'aggiornameto.Spero di aver capito il problema e spero che sql server sia uguale a mysql.Saluti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.