Avatar billede thomashove Nybegynder
03. november 2000 - 15:19 Der er 3 kommentarer og
1 løsning

Trigger

Jeg har flg. Tabel

create table LeverandoerBetingelse (
  LevBetNr int identity(90000000,1),
  Prioritet smallint NOT NULL,
  IndkPris decimal,
  NyPris decimal,
  AktuelPris decimal NOT NULL,
  Udgaaet Int NOT NULL default 0,
  Lagerplads varchar(4)  NOT NULL,
  LagerAntal smallint,
  LevNr int ,
  Stregkode varchar(13),

Hvordan laver man en trigger der - hvis lagerantal går i nul, sætter aktuelpris=nypris og herefter sætter nypris=0

På forhånd tak
Thomas H
Avatar billede nolle_k Nybegynder
04. november 2000 - 10:05 #1
CREATE TRIGGER TheTrigger
  ON INSERT, UPDATE
AS
  declare @LagerAntal int
  declace @Nr int
  declare @NyPris decimal

  -- It is expected that only ONE row is inserted
  -- at a time!
  SELECT @LagerAntal = LagerAntal FROM Inserted
  SELECT @Nr = LevBetNr FROM Inserted
  SELECT @NyPris = NyPris FROM Inserted

  -- Has a record been inserted or Updated?
  if(@LagerAntal = 0)
  -- YES!
  BEGIN
    UPDATE LeverendoerBetingelser
      SET AktuelPris = @NyPris,
          NyPris = 0
  END


Håber det funger!
Avatar billede nolle_k Nybegynder
04. november 2000 - 10:06 #2
UPS jeg glemte noget!


-- Has a record been inserted or Updated?
  if(@LagerAntal = 0)
  -- YES!
  BEGIN
    UPDATE LeverendoerBetingelser
      SET AktuelPris = @NyPris,
          NyPris = 0
      WHERE LevBetNr = @Nr
  END


Avatar billede thomashove Nybegynder
04. november 2000 - 13:17 #3
KANON Nolle k det virkede fint ... Jeg har dog lige et lille tillægsspørgsmål!!
Førnævnte tabel kører i samspil med nedenstående
Hvis man så gerne vil have en trigger der sætter alle levbetingelser til udgaaet hvis leverandøren er inaktiv - kommer det så til at lyde :

CREATE TRIGGER LeverandoerInaktiv
ON UPDATE
AS
  UPDATE LeverendoerBetingelse
  SET Udgaaet=1 
  WHERE levnr in(Select levNr from Leverandoer where aktiv = 0)


Create table Leverandoer(
  LevNr int identity(30000000,1),
  Navn varchar(30) NOT NULL,
  Adresse varchar(50) NOT NULL,
  PostNr varchar(4),
  Telefon varchar(20),
  Email varchar(30),
  Fax varchar(20),
  KontaktPers varchar(30),
  LevTid smallint,
  OmrFaktor decimal,
  Aktiv Int NOT NULL Default 1,
Avatar billede nolle_k Nybegynder
06. november 2000 - 09:04 #4
Det lyder meget rigtigt du!
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