`
Jeasus

MS SQL trigeri

3 posts in this topic

Jeasus

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
eMDiiPii

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

So .

DECLARE @foobar VARCHAR(100) 

SELECT @foobar = (SELECT foobar FROM Inserted)

  • Patīk 1

Share this post


Link to post
Share on other sites
SQLBlog.lv

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ē   4 biedri, 1 Anonīmi, 17 viesi (Skatīt pilnu sarakstu)

    • Pukinens
    • Anonīms Alkoholiķis
    • viesturs0711
    • Payne
  • Biedru statistika

    22 708
    Kopā biedri
    456
    Bieži tiešsaistē
    iviis
    Newest Member
    iviis
    Pievienojies