Avatar billede bambino Nybegynder
19. april 2001 - 14:10 Der er 5 kommentarer og
1 løsning

Trigger der opdaterer 2 felter i næsten identiske tabeller

Hej...

Jeg har en tabel jeg kalder customer_edit hvor to felter skal opdateres hvergang disse felter bliver opdateret i customer - felterne det drejer sig om er : finished og finished_date.

Så hvis jeg fra en asp-side opdaterer en record hvor feltet finished opdateres med 1 og feltet finished_date med f.eks. 19-04-2001 14:14:02 - skal dette også ske i customer_edit. Tabellernes unikke id er Customer_ID.

Jeg har prøvet lidt bare med finished-feltet, men tror jeg er helt på afveje:

CREATE TRIGGER createfinish ON customer.finished
FOR UPDATE
AS

update customer_edit
set finished = 1
from  customer_edit
where Customer_ID = Customer_ID

Håber virkelig i kan hjælpe - på forhånd tak.

-Bambino
Avatar billede slash Nybegynder
19. april 2001 - 14:39 #1
Et opkast... der er ikke test for fejl på...
CREATE TRIGGER createfinish ON customer.finished
FOR UPDATE
AS

declare @id int
declare @fino int
declare @editdate datetime

if update(finished)
begin
select @id = max(i.customer_id), @fino = i.finished, @editdate = i.finished_date from inserted i
update customer_edit set edit_finished = @fino, edit_finished_date = @editdate where customer_id = @id

end
Avatar billede bambino Nybegynder
19. april 2001 - 14:56 #2
Tak for hurtig svar, men jeg får en fejl i linie 12:

Incorrect syntax near \'@id\'
Avatar billede slash Nybegynder
19. april 2001 - 14:58 #3
prøv dette... er lidt i tvivl om max()
CREATE TRIGGER createfinish ON customer.finished
FOR UPDATE
AS

declare @id int
declare @fino int
declare @editdate datetime

if update(finished)
begin
select @id = i.customer_id, @fino = i.finished, @editdate = i.finished_date from inserted i
update customer_edit set edit_finished = @fino, edit_finished_date = @editdate where customer_id = @id

end
Avatar billede bambino Nybegynder
19. april 2001 - 15:09 #4
Får 3 fejl nu:

Invalid object name \'customer.finished\'
(det er nok mig der fra start fra lavet fejl)

Invalid column name \'edit_finished\'
Invalid column name \'edit_finished_date\'



Avatar billede slash Nybegynder
19. april 2001 - 15:11 #5
okie.... hvad hedder de 2 tupler du vil opdatere i customer_edit????

jeg har kaldt dem:
edit_finished & edit_finished_date

har du kaldt dem noget andet, så ændr dem til det i updatedelen!
Avatar billede bambino Nybegynder
19. april 2001 - 15:25 #6
Ændrerede selvfølgelig disse edit-felter til finished og finished_date, og Fantastico! Det virker meget fint, tak for hjælpen!

-Bambino

p.s. det kan være jeg hidkalder dig her på eksperten hvis jeg får et mere kompliceret trigger-problem - er det ok - på forhånd tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester