2013-07-12 1 views
6

Avertissement: Il y a un question similaire sur SO qui semble se rapporter à une ancienne version de SSDT. La réponse sélectionnée référence les fichiers de paramètres qui ne sont pas dans mon projet. Je crois que j'ai les paramètres équivalents dans le nouveau format de projet défini correctement. Je suis nouveau à SSDT, et je ne crois pas encore pour ne pas changer ma base de données de manière involontaire. Après avoir obtenu les paramètres comme je le souhaitais, j'ai essayé une publication pour voir ce qu'elle allait faire dans ma base de données. Je reçois ces déclarations ajoutées à la publication de script:Comment supprimer l'instruction ALTER DATABASE de mon script de publication SSDT?

ALTER DATABASE [$(DatabaseName)] 
     SET ANSI_NULLS ON, 
      ANSI_PADDING ON, 
      ANSI_WARNINGS ON, 
      ARITHABORT ON, 
      CONCAT_NULL_YIELDS_NULL ON, 
      CURSOR_DEFAULT LOCAL, 
      RECOVERY FULL, 
      AUTO_UPDATE_STATISTICS ON 
     WITH ROLLBACK IMMEDIATE; 

    ALTER DATABASE [$(DatabaseName)] 
     SET PAGE_VERIFY NONE 
     WITH ROLLBACK IMMEDIATE; 

    EXECUTE sp_executesql N'ALTER DATABASE [$(DatabaseName)] 
     SET TRUSTWORTHY OFF 
     WITH ROLLBACK IMMEDIATE'; 

Je ne veux pas que le projet de base de données pour modifier jamais mes paramètres de base de données, donc je cette case non cochée dans les paramètres de débogage:

Deploy database properties check box

en outre, ici sous avancée: paramètres de publication

Advanced publish settings screenshot

sous paramètres du projet | Propriétés de la base I MADE tout correspondent à ma base de données:

Database settings screenshot Database settings from Management Studio

Comment puis-je empêcher cela?

+0

Êtes-vous sur les derniers bits SSDT? J'ai les mêmes paramètres et je n'ai aucune commande ALTER DATABASE dans mes scripts de version. Vérifiez http://blogs.msdn.com/b/ssdt/ et soyez probablement au moins Décembre 2012 ou Mars 2013. (Juin vient de sortir, donc peut vouloir faire preuve de prudence là-bas.) –

+0

J'utilise le SSDT de juin. –

+2

Utilisant les mêmes. Si mes options de base de données sont identiques, elles ne sont pas scriptées. Dans le code XML de publication, j'ai " False" bien que ma publication "locale" utilise "True" là-dedans. Une fois que les options sont les mêmes, nous sommes bons pour ceux-là. Si vous cliquez avec le bouton droit sur le fichier de publication pour l'ouvrir, vous pouvez voir le fichier XML. Peut-être vérifier dans ce XML pour voir les paramètres et modifier manuellement? Peut-être laissez-le courir une fois et voir si elle disparaît sur les futures courses? –

Répondre

3

Ma solution était de vérifier soigneusement que tous les paramètres correspondaient parfaitement. J'avais supposé que puisque j'avais réglé certains paramètres pour être identiques, que ces paramètres ne seraient plus dans le script de changement généré. Ce n'est pas le cas, cependant. S'il existe des différences de paramètre de base de données, il semble en inclure d'autres qui sont les mêmes avec la valeur incorrecte.

Les paramètres que j'avais manqués se trouvaient sur les 2ème et 3ème onglets de la boîte de dialogue Paramètres de base de données (Opérationnel et Divers).

Operational settings Miscellaneous settings

+0

Intéressant ... Je vais essayer de le reproduire –

-2

Je n'ai pas utilisé SSDT. Cependant, lorsque j'utilise SSMS pour générer des scripts, je supprime généralement le code que je ne veux pas exécuter. Quand je fais des changements au schéma de DB, je le veux scripté et dans le contrôle de source. De cette façon, mes installations/migrations sont répétables et testables. Je ne sais pas si c'est comme ça que vous avez l'intention d'utiliser SSDT, mais c'est matière à réflexion

+0

Mon objectif est que notre serveur de construction TFS déploie automatiquement les modifications de base de données lorsque le code SQL est archivé dans le contrôle de source dans le cadre d'un projet de base de données. Je pourrais probablement ajouter un script de pré-déploiement qui ferait ce que vous avez décrit, mais j'espère pouvoir le gérer sans un hack. –

9

Il y a deux cases qui doivent être décochée avant d'enregistrer le profil de publication. Assurez-vous que vous allez projeter des propriétés -> Debug et décocher « Déployer les propriétés de base de données »

Click here to view screenshot

puis faites un clic droit sur votre projet de base de données -> publish puis cliquez sur « Avancé » pour décocher « Déployer des propriétés de base de données »

Click here to view screenshot

Cliquez sur OK, cliquez sur Enregistrer le profil sous et à partir de maintenant, chaque fois que vous déployez votre script généré en utilisant le profil de publication que vous venez de créer, ne contiendra que les modifications que vous voulez. J'utilise VS 2013 avec le dernier SSDT au 20 avril 2016.

Questions connexes