`
Jeasus

MS SQL trigeri

3 posts in this topic

tātad tabulā vēlos trigeri kas stradatu inserta vietaa, un parbauditu datus.

ja dati neatbilst normām tad errors, ja atbilst tad veicam insertu. meistaram drosvien trivials gadijums, es netieku galaa ar manuaaliem.

jautajums nr.1: kā lai count(id) skaitu dabuju @skaits mainigajaa?

jautajums nr.2: kā lai tieku klat tam vertibam kas bij insert vaicajumaa kura vieta strada sis trigeris?

CREATE TRIGGER insertEksponats ON eksponats
INSTEAD OF INSERT
AS
DECLARE @skaits int;
// select count(id) from tabula where lauks='konkreta vertiba no inserta vaicajuma kura vieta starda sis trigeris'
// tad count rezultatu kautka iedabuu @skaits
IF @skaits>0
BEGIN
PRINT 'man kludas pazinojums'
END
ELSE
BEGIN
INSERT INTO eksponats(id, vertiba) VALUES(id,vertiba)
//pietam shai te insertaa vajadzetu izpildit to insertu kura vieta nostradaa sis trigeris
//vai vismaz ar tam apsaam vertibaam
END

paldies.

Labots - Jeasus

Share this post


Link to post
Share on other sites

MSSQL iebāž visus insert`a laukus virtuālā tabelē Inserted

So .

DECLARE @foobar VARCHAR(100) 

SELECT @foobar = (SELECT foobar FROM Inserted)

1 biedrs atbalsta

Share this post


Link to post
Share on other sites

Laicīgā atbilde :).

 

par trigeriem plašāk var palasīt šeit Trigeri SQL Server.

ir inserted un deleted tabulas. Tev trigerī tad būtu jjāsien tabula ar "inserted" tabulu pēc primārās atslēgas laukiem.

Tomēr ir vēl mazliet sarežģītāk- jāņem vērā, ka var ievietot uzreiz daudzas rindas, no kurām dažas var atbilst Tevis izvirzītajam kritērijam un dažas nē.

 

un vispār šādi šo problēmu manuprāt labāk nerisināt.. tā vietā izmantot, piemēram, procedūru.

Share this post


Link to post
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!


Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!


Pierakstīties tagad!

  • Kas ir tiešsaistē   31 biedri, 2 Anonīmi, 53 viesi (Skatīt pilnu sarakstu)

    • waplet
    • snukurins
    • xp
    • rubb
    • ArnisV
    • Koalīcija
    • Notfound
    • Stasss
    • uldise
    • Borhs
    • Anonīms Alkoholiķis
    • Verneris
    • PlayingTheSaint
    • janiz
    • versatile
    • Gints_lv
    • laikamtak
    • Arnis2002
    • alusbundza
    • gromix
    • RitaKafija
    • Ugis
    • rodrigez
    • Destructo
    • Zin...
    • ronalds_
    • mickys
    • Zoom
    • Johny_JK
    • superKrona
    • axxb
  • Biedru statistika

    22 436
    Kopā biedri
    456
    Bieži tiešsaistē
    Justin
    Newest Member
    Justin
    Pievienojies