2009-11-25 4 views
6

Je commence tout juste à travailler avec des projets de base de données dans Visual Studio 2010 et je me demande comment obtenir le générateur de script différentiel pour inclure une instruction DROP TABLE. Si je crée un nouveau script de table dans le dossier Tables, le différentiel le récupère et inclut une instruction CREATE TABLE dans le script de déploiement, mais lorsque je supprime ce fichier SQL du projet, il ne place pas de DROP dans le script. J'ai vérifié que cela s'applique également aux procédures stockées. Est-il possible de se débarrasser des objets existants dans la base de données? Remarque: Je pense que cela s'applique également au GDR de Visual Studio 2008 Team System pour développeurs de bases de données (Data Dude).Suppression d'une table avec le projet de base de données Visual Studio 2010

Répondre

14

(Ces instructions sont valables pour VS 2008 GDR2, mais je crois que vous avez dit, ceux-ci seront similaires sinon identiques pour VS 2010.)

Vous pouvez ouvrir les paramètres du projet et allez dans l'onglet Déploiement et vérification la case intitulée "Générer des instructions DROP pour les objets qui se trouvent dans la base de données cible mais qui ne sont pas dans le projet de base de données". En fonction de votre façon de travailler, vous devrez peut-être décocher la case "Bloquer le déploiement incrémentiel si une perte de données peut survenir". Un avertissement juste, cependant, que c'est une chose risquée à faire, et vous voudrez peut-être sauvegarder la base de données automatiquement avant le déploiement pendant que vous êtes là.

+0

Merci! Un peu un "duh" moment là, je suppose que j'ai juste raté cette case à cocher. –

+2

dans Visual Studio 2013 Je ne trouve ni publier ni déployer l'onglet dans le paramétrage du projet et quand je dépose la base de données, il n'y a pas de script généré quand je dépose une table bien que cela fonctionne pour créer des tables. –

+0

@Mohamed Cliquez avec le bouton droit sur le projet de base de données dans l'Explorateur de solutions, sélectionnez ** Publier **, puis cliquez sur le bouton ** Avancé **. Dans la nouvelle fenêtre, allez dans l'onglet Drop, cochez la première option: ** Drop objets dans la cible, mais pas dans la source **. Sachez tout de suite que tout ce qui n'est pas dans la source sera supprimé par défaut, vous devrez donc vérifier manuellement quels objets ne doivent pas être supprimés. –

Questions connexes