Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655

    Cascade su una sola tabella

    Ciao Ragā...vi illustro il mio problema:

    Ho una tabella che ha una serie di colonne,tra queste una chiave primaria e nella stessa tabella un'altra colonna usata come chiave esterna che fā riferimanto alla chiave primaria della stessa tabella...

    Quando vado a cancellare una tupla vorrei che venissero cancellate anche le altre tuple della stessa tabella che fanno rifemento alla chiave che č stata cancellata...insomma un vero e proprio CASCADE,il problema č che con Microsoft SQL Server non riesco ad impostare questa opzione...

    Sapreste dirmi come posso ovviare a questo problema?

  2. #2

    T-SQL

    Se usi MS SQL puoi fare una StoredProcedure ricorsiva

    Es:

    codice:
    CREATE PROCEDURE CASCADE_DELETE
       @Key INT
    AS
    
       DELETE FROM Tabella WHERE Key = @Key
    
       DECLARE @ChildKey INT
       DECLARE Cascade CURSOR FOR
       SELECT Key FROM Tabella WHERE ForeignKey = @Key
       OPEN Cascade
       FETCH NEXT FROM Cascade INTO @ChildKey
       WHILE @@FETCH_STATUS = 0
       BEGIN
          EXEC CASCADE(@ChildKey)
          FETCH NEXT FROM Cascade INTO @ChildKey
       END
       CLOSE Cascade
       DEALLOCATE Cascade
    Non l'ho testata, ma sono fiducioso, anche se Zio Bill sconsiglia l'utilizzo dei cursori...

    Marco Cavallo
    WebMaster & Programmer
    Il mio sito in continua evoluzione...
    Vieni a trovarmi!
    http://www.artcava.net/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.