Welcome to Sign in | Help
in Search

SQL Trigger

Last post 02-27-2008, 2:48 PM by dorin. 19 replies.
Page 2 of 2 (20 items)   < Previous 1 2
Sort Posts: Previous Next
  •  02-26-2008, 4:25 PM 4191 in reply to 4189

    Re: SQL Trigger

    Diana:
    Verifica inca o data ca intr-adevar nu-ti trebuie constrangerea "UNIQUE" - poate este ceruta in logica unei aplicatii (?), etc...


    Diana
    El avea o coloana in plus , UNIQUE,  fata de coloanele tabelei
    Pe trigger avea
    NSERT INTO dbo.Audit SELECT * FROM deleted

    Normal ca numarul coloanelor nu corespundea, Audit avind 1 in plus(UNIQUE) si inserindu-se in acea coloana cine stie ce (*) coloana din deleted...
    Asa ca , cel mai bine este sa scrie specificind numele coloanelor. .. si pe urma mai vedem...



    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  02-27-2008, 9:11 AM 4199 in reply to 4191

    Re: SQL Trigger

    da, aveam in plus coloana "ID" in a 2a tabela (Audit) care se auto-incrementa daca se adaugau date noi

    dar, asta nu e o problema, din fericire SQLul stie sa insereze doar row-urile care trebuie chiar daca sunt selectate cu *

    pe viitor, daca va fi nevoie, voi selecta, concret, row-urile care vreau sa le scriu in a 2a tabela - desi, nu cred ca se va ajunge la chestia asta... pt ca tabelele nu-si vor schimba structura vreodata, si astfel sa existe posibilitatea de a fi inserat nu-stiu-ce row, care sa sa fie UNIQUE, si sa pericliteze executia codului.

    -
    valoarea UNIQUE exista si in prima si in a 2a tabela - iar, cand, codul incerca sa insereze datele noi in a 2a tabela se "impiedeca" de aceasta valoare

    aceasta valoare UNIQUE, nu avea niciun sens - a fost creeata ca UNIQUE din greseala

    -
    problema cu care m-am confruntat la inceput, a fost - SQL imi spunea ca nu stie ce obiect este "deleted" Smile

    defapt, solutia era foarte simpla - dar nu am observat-o... deloc

    eu scriam -> INSERT INTO Audit SELECT * FROM deleted

    solutia era sa adaug prefixul "dbo." la "Audit" Smile

    sincer sa fiu, nu stiu de ce este nevoie de prefixul acesta - (dbo = database owner?)
  •  02-27-2008, 9:14 AM 4200 in reply to 4199

    Re: SQL Trigger

    am uitat sa adaug -> cel mai amuzant lucru e - am stat 4 zile sa-mi dau seama ca trebuie sa scriu 4 caractere ("dbo.") Smile
  •  02-27-2008, 12:40 PM 4203 in reply to 4200

    Re: SQL Trigger

    dbo este şi utilizator dar şi schemă. Aici este vorba de schema (containerul) obiectului tabelă. Utilizatorul dbo este owner-ul schemei dbo.
    "din fericire SQL-ul stie sa insereze doar row-urile care trebuie chiar daca sunt selectate cu * " - din fericire da dar aceasta mai are o implicaţie pe lângă cea de care ai menţionat (şi anume modificarea structurii tabelei şi riscul de a selecta coloana sau coloanele noi) şi anume aceea că server-ul trebuie să determine care sunt coloanele pt care face select.

     




     


    Cătălin D.
  •  02-27-2008, 2:48 PM 4206 in reply to 4203

    Re: SQL Trigger

    multumesc pt info.

    cat despre posibilitatea de a adauga coloane noi si in felul acesta codul sa fie compromis - aceasta posibilitate nu exista, niciodata nu se va schimba structura prin adaugarea (sau stergerea) unei sau mai multor coloane.
Page 2 of 2 (20 items)   < Previous 1 2
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems