Domanda

Ho lavorato su diverse applicazioni che hanno salvato i dati XML in un database. Ad oggi tutti hanno semplicemente sovrascritto i contenuti XML correnti con i nuovi contenuti XML.

Vorrei salvare le modifiche all'XML nel database ma non sovrascrivere ciò che è attualmente nel DB.

A parte semplicemente creare nuove righe per le modifiche e lasciare intatte le vecchie righe, quali altre opzioni potrei usare?

Ho pensato di salvare le differenze come effettive differenze di testo, che non sempre funziona per XML.

Sono pazzo di volerlo anche solo?

È stato utile?

Soluzione

Potresti prendere in considerazione l'aggiunta di una tabella di controllo per sederti accanto alla tabella dei dati.

Avrebbe solo le colonne di cui sei interessato a tenere traccia della cronologia insieme a una colonna datetime (per registrare la data di modifica) e normalmente desideri anche alcune informazioni utente (ad esempio, estrarre l'utente che ha effettuato l'accesso dalla connessione o fornire un nome utente nell'inserimento / aggiornamento).

Quindi creare un trigger di aggiornamento sulla tabella dei dati e inserire nuove righe nella tabella di controllo dalla pseudo tabella eliminata. Questo conterrà i dati prima di un aggiornamento se si esegue un aggiornamento poiché un aggiornamento è in realtà un'eliminazione e un inserimento.

Esiste anche questa soluzione più generica che propone di utilizzare SQL CLR per sottrarre l'implementazione di una tabella di controllo univoca e attivare per ogni tabella di dati che si desidera controllare: http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top