• river1 (11/6/2012)


    Sean Lange (10/30/2012)


    I think this should do what you are looking for but it is untested because I don't have ddl to work with.

    create trigger TRG_CONTRIBUINTES_VERIFCA_RF_E_NIF on contribuintes

    for update

    as begin

    update contribuintes

    set nif = d.nif

    from inserted i

    join deleted d on d.SomeID = i.SomeID

    where i.numeroposto = 'Central'

    update contribuintes

    set cod_rep_fiscal = d.cod_rep_fiscal

    from inserted i

    join deleted d on d.SomeID = i.SomeID

    where i.cod_rep_fiscal not in (select cod_rep_fiscal from V_RETURN_RF)

    end

    I think that we have a problem with that code sample....

    How will the trigger knows which NIFs should it updates on table contribuintes?

    Example:

    My table contribuintes have the following columns:

    NIF; NIF_ANTIGO (it's the primary key); NAME; ADDRESS; COD_REP_FISCAL,etc...

    When I update a NIF, the trigger should only update the NIF column with values from the deleted table to NIFs where nif_antigo is the same as the nif_antigo from deleted table.

    Otherwise, When an update happens, all the fields NIF from the table contribuintes will be updated with the NIF from the deleted table.

    This is not correct.

    Only does NIFs that were updated should get their values back to normal (nifs on the deleted table).

    The key to do this is the nif_antigo present on tables deleted and contribuintes.

    How can I change the code do accomplish this?

    Thank you very much.

    Have you tested this code? It does NOT update the entire table. It is using the inserted and deleted tables. Those will contain the row(s) that were updated.

    I think you just need to change your join to use nif_antigo??? I don't know what your keys are because you still have not posted any ddl and sample data. I have coded this completely in a vacuum.

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/