» »

[SQL]Trigger

[SQL]Trigger

vvisoc_1 ::

Pozdravljeni!

Imam tabelo "Opravila" in njej pridadajoč prožilec. Prožilec se proži ob vsakem update-u te tabele in sicer tako da poveča vrednost nekega polja v posamezni koloni za 1. To mi sicer sedaj deluje vendar prožilec nima pripadajočega "WHERE" stavka, da bi povečal vrednost določenemu polju v določeni koloni ampak to stori vsem v tabeli. Zanima me torej, kako bi pridobil vrednost tiste kolone (torej ID), ki sem jo posodobil? Uporabljam pa Microsoft sql server express.

tl;dr : Kako pridobiti ID ob update-u neke tabele z trigerjem v MSSQL?

FrEaKmAn ::

Ta pristop, da gre skozi celo tabelo ni v redu, ker potem celotno tabelo oziroma vsako vrstico updejta in ne moreš določiti IDja. Nazadnje ko sem gledal, lahko preprosto podaš where k UPDATU..

je možno pastat TRIGGER?

smoke ::

Nekak tak bi moglo bit :)

create trigger [dbo].[_tOpravila] on [dbo].[Opravila]
for update
as 
set nocount on

update o set o.dolocenopolje = (o.dolocenopolje+1)
from Opravila o join inserted i on o.ID = i.ID

Zgodovina sprememb…

  • spremenil: smoke ()

zavajon ::

To je res, inserted je temp tabela, ki jo lahko uporabljaš v triggerjih in ima enako strukturo kot tabela triggerja. Poleg te obstaja še tabela deleted. Pri insert or update or delete triggerjih lahko ugotovimo, za kakšno operacijo je šlo, tako da left joinamo inserted z updated.

Je pa malo nerodno to narejeno v MSSQL, ker nimaš row level triggerjev, ampak le statement, tako da v primeru transakcije več rowov z enim stavkom se ne moreš eksplicitno sklicevati na določeno vrstico.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[SQL] primary key inkrementalno dodajanje (strani: 1 2 )

Oddelek: Programiranje
515394 (4584) ejresnevem
»

SQL backup import

Oddelek: Programiranje
81064 (866) meh
»

c# - mssql kombinacija / problem pri zapisu row-a v bazo

Oddelek: Programiranje
121598 (1407) darkolord
»

SQL trigger Oracle

Oddelek: Programiranje
51174 (1082) PunXXX
»

[T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?

Oddelek: Programiranje
162896 (2614) dmok

Več podobnih tem