2009-11-25 20 views
6

Sto solo iniziando a lavorare con progetti di database in Visual Studio 2010, e mi chiedo come ottenere il generatore di script differenziale per includere un'istruzione DROP TABLE. Se creo un nuovo script di tabella nella cartella Tabelle, il differenziale lo seleziona e include un'istruzione CREATE TABLE nello script di distribuzione, ma quando elimino quel file SQL dal progetto, non inserisce un DROP nello script.Eliminazione di una tabella con Visual Studio 2010 Database Project

Ho verificato che questo si applica anche alle stored procedure. C'è un modo per sbarazzarsi degli oggetti esistenti nel database?

Nota: Penso che questo si applicherebbe anche a GDR di Visual Studio 2008 Team System per Database Developers (Data Dude).

risposta

14

(Queste istruzioni sono valide per VS 2008 GDR2, ma credo che come hai detto, questi saranno simili se non identici per VS 2010)

È possibile aprire le impostazioni del progetto e andare alla scheda Distribuire e controllo la casella con l'etichetta "Genera istruzioni DROP per gli oggetti che si trovano nel database di destinazione ma che non si trovano nel progetto del database".

A seconda della modalità di lavoro, potrebbe essere necessario deselezionare la casella "Blocca la distribuzione incrementale se si verifica una perdita di dati". Un avvertimento equivoco, tuttavia, che questa è una cosa rischiosa da fare e si potrebbe desiderare di avere il backup del database automaticamente prima della distribuzione mentre si è lì dentro.

+0

Grazie! Un po 'di "duh" momento lì, credo di aver appena perso quella casella di controllo. –

+2

in visual studio 2013 Non riesco a trovare la scheda di pubblicazione o di distribuzione nelle impostazioni del progetto e quando rilascio il database, non viene generato alcuno script quando faccio cadere una tabella sebbene funzioni per la creazione di tabelle. Qualche suggerimento? –

+0

@Mohamed Fare clic con il pulsante destro del mouse sul progetto del database in Esplora soluzioni, selezionare ** Pubblica **, quindi fare clic sul pulsante ** Avanzato **. Nella nuova finestra, vai alla scheda Rilascio, seleziona la prima opzione: ** Elimina oggetti nella destinazione ma non nella sorgente **. Tieni presente che ora tutto ciò che non è in origine verrà eliminato per impostazione predefinita, quindi dovrai controllare manualmente quali oggetti non devono essere eliminati. –