Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Trigger question
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Stored procedures, Triggers, UDFs
Versions des environnements
SQL Server:
SQL Server 2000
Divers
Thread ID:
01500199
Message ID:
01500205
Vues:
57
>Hello all, first things first - I have never used triggers. In a lot of my sp's I create a record of the current values of a table that I'm about to update along with the new values for the table - this makes it very easy for me to report on edits, is it possible to do this using a trigger ? A typical example of what I do is shown below
>
>
>Proc UpdateAddress(@Addressid int,@line1 varchar(35),(@line2 varchar(35),
>(@line3varchar(35),
>(@line4 varchar(35))
>As
>Insert into AddressHistory
>(Addressid int,
>line1 ,
>line2,
>line3,
>line4,
>xline1,
>xline2,
>xline3,
>xline4)
>(Select
>Addressid,
>line1,
>line2,
>line3,
>line4,
>@line1,
>@line2,
>@line3,
>@line4 from address where addressid = @Addressid  )
>
>-- Then update the address table with new values
>
>
>
>
Try:
CREATE TRIGGER ON  [dbo].[Address]
       FOR UPDATE,INSERT
AS
BEGIN
   *** Insert newly created records/UPDATEd in AddressHistory
   INSERT INTO AddressHistory (Addressid,
                               line1 ,
                               line2,
                               line3,
                               line4,
                               xline1,
                               xline2,
                               xline3,
                               xline4)

   SELECT AddressId,
          line1 ,
          line2,
          line3,
          line4,
          ISNULL(DELETED.Line1,''),
          ISNULL(DELETED.Line2,''),
          ISNULL(DELETED.Line3,''),
          ISNULL(DELETED.Line4,'')
  FROM INSERTED 
  LEFT JOIN DELETED ON INSERTED.AddressId = DELETED.AddressId
END
and you could try it:
INSERT INTO Address .....
UPDATE Address SET Line1 = 'asdasdasdas' WHERE AddressId = 123
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform