Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Trigger update

Postades av 2005-02-03 07:35:14 - Kristian Weingard, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 610 personer

Hej!

Jag har en fundering kring trigger funktionen i MSSQL 7.

Om jag uppdaterar en tabell där tabellen heter "antal" med hjälp av storeprocedure, antal och antalbehov där ett id är i where-satsen, går det att uppdatera med hjälp av en trigger till tabell 2 när en ändring har skett till tabell "antal".

Hur får jag då med mig vilka värden som har updaterats samt hur skulle det kunna se ut.


Svara

Sv: Trigger update

Postades av 2005-02-03 08:51:40 - Christoffer Hedgate

Nu förstår jag inte exakt vad du vill göra, om du bara vill logga att en ändring skedde, eller kopiera värdet eller vad. Men generellt kan man iaf säga att triggers har tillgång till två virtuella tabeller, INSERTED och DELETED, vilka innehåller de rader som påverkats av en modifiering av datan i tabellen. INSERTED innehåller det nya värdet för rader som uppdateras och/eller nya rader som lagts till, och DELETED innehåller det gamla värdet för rader som uppdaterats och/eller tagits bort.

<code>
CREATE TRIGGER triggernamn
ON antal
FOR UPDATE
AS
BEGIN
UPDATE tabell2 SET x = y WHERE id IN (SELECT id FROM INSERTED)
END
</code>


Svara

Sv:Trigger update

Postades av 2005-02-03 09:32:38 - Kristian Weingard

Tack för ditt svar Christoffer Hedgate.

Känner att jag börjar närma mig mitt mål, men för att säkerställa detta så ska jag försöka vara tydligare.

Användare på hemsidan väljer att rösta på en fråga där 3 alternativ presenteras ex.

Har du löss?

Ja (radiobutton)
Nej (radiobutton)
Vet inte (radiobutton)

(Submit knapp)


Svaret skickas till en update-sida där värdet updaterar vilket val som gjordes med +1, men istället för att köra 2 update kommandon på sidan, så vill jag köra en tigger varje gång ett svar kommer in i tabellen dbTotaltantalsvar, kolumn "antal" för att registrera det totala antal svar oavsett val.


Jag försöker förstå mig på trigger och dess kraft och svagheter.


Svara

Sv: Trigger update

Postades av 2005-02-03 11:14:16 - Christoffer Hedgate

Ja, då låter det som att du förstått triggers. Däremot har du inte en korrekt normaliserad design, även om du verkar vara medveten om det och därför tänker använda triggers för att ändå upprätthålla integriteten. Får jag fråga varför du vill lagra totalt antal svar i en separat tabell och kolumn? Det går ju att räkna ut senare.


Svara

Sv:Trigger update

Postades av 2005-02-03 11:36:38 - Kristian Weingard

Mitt exempel ovan va bara något jag tog i luften för att förtydliga mig, men samtidigt så skulle mitt tillvägagångs sätt vara så att jag skulle förvara totalt svarade i frågetabellen alltså:


id
fråga
f_antal

relation

s_id
id
svar
s_antal

Du kanske menar att summera ihop s_antal med Group By id istället?

Men skulle ditt exempel nedan kunna lösa mitt problem annars, detta förutsätter ju att posten har lagts till, då skall alltså INSERTED användas, men FROM säger ju inte från vilken tabell, eller vilka värden som skall in ?
Om jag sedan skulle i en annan situation köra en update på samma tabell kommer denna trigger då köras.

CREATE TRIGGER triggernamn
ON antal
FOR UPDATE
AS
BEGIN
UPDATE tabell2 SET x = y WHERE id IN (SELECT id FROM INSERTED)
END


Svara

Sv: Trigger update

Postades av 2005-02-03 12:19:02 - Christoffer Hedgate

>Du kanske menar att summera ihop s_antal med Group By id istället?

Japp.

>Men skulle ditt exempel nedan kunna lösa mitt problem annars, detta förutsätter ju att posten har lagts till, då skall alltså INSERTED användas, men FROM säger ju inte från vilken tabell, eller vilka värden som skall in ?

INSERTED är en virtuell representation av de rader som lagts till i den tabell som refereras till i ON-klausulen när triggern skapas.


Svara

Sv:Trigger update

Postades av 2005-02-03 12:34:44 - Kristian Weingard

Nu ramla inte bara bitar av polletten utan hela polletten ner.

Du har varit en klippa.
Tack för hjälpen.

Ps. visst är de bättre att använda
-Du kanske menar att summera ihop s_antal med Group By id istället?

Stänger tråden


Svara

Sv: Trigger update

Postades av 2005-02-03 14:22:43 - Christoffer Hedgate

>Stänger tråden

Och jag ändrar till löst/klar. :)


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
584
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies