Welcome to Sign in | Help

Re: ?

  •  05-14-2008, 9:26 PM

    Re: ?

    Declanşator pentru ştergere în cascadă (echivalent cu ON DELETE CASCADE):
    CREATE TABLE Localitate
    (
    CodLocalitate INT PRIMARY KEY,
    Denumire VARCHAR(25) NOT NULL
    )
    GO

    CREATE TABLE Telefon
    (
    NrTelefon VARCHAR(25) PRIMARY KEY NOT NULL,
    CodLocalitate INT NOT NULL
    REFERENCES Localitate(CodLocalitate)
    --ON DELETE CASCADE --fara stergere in cascada
    )
    GO

    INSERT INTO Localitate VALUES (1,'Bucuresti')
    INSERT INTO Localitate VALUES (2,'Ploiesti')
    GO
    INSERT INTO Telefon VALUES ('3123219',1)
    INSERT INTO Telefon VALUES ('4569567',1)
    INSERT INTO Telefon VALUES ('8796674',1)
    INSERT INTO Telefon VALUES ('111111',2)
    INSERT INTO Telefon VALUES ('222222',2)
    GO

    CREATE TRIGGER StergereLocalitate
    ON Localitate
    INSTEAD OF DELETE
    AS
      DELETE Telefon
      FROM Telefon INNER JOIN DELETED ON Telefon.CodLocalitate = DELETED.CodLocalitate

      DELETE FROM Localitate
      FROM Localitate INNER JOIN DELETED ON Localitate.CodLocalitate = DELETED.CodLocalitate
    GO

    --5 inregistrari
    SELECT * FROM Telefon
    GO

    DELETE FROM Localitate WHERE Denumire = 'Ploiesti'
    GO

    --3 inregistrari
    SELECT * FROM Telefon
    GO

View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems