2016-09-28 1 views
0

Lorsque vous utilisez un projet de base de données SQL Server dans Visual Studio, si vous avez plus de 1000 procédures stockées dans une base de données, Visual Studio divise les procédures en deux répertoires distincts . Lorsque vous tentez de synchroniser de nouvelles procédures stockées dans le projet suite à une telle importation, via la fonction "Schema Compare", Visual Studio oublie cette structure de dossiers partagés et place tous les nouveaux scripts directement dans le dossier "Stored Procedures". Cela signifie que les nouvelles procédures stockées qui sont scriptées ne tiennent pas dans la structure existante, ce qui oblige l'utilisateur à vivre avec cette structure détachée ou à mettre à jour manuellement les références de projet et à les copier dans la structure initiale créée par Visual Studio.Le projet de base de données SQL Server ne gère pas correctement la création du nouveau fichier de script

étapes

  1. Créer un nouveau projet SQL.
  2. Faites un clic droit sur le projet dans l'explorateur de solutions> sélectionnez 'Importer'> 'Base de données'.
  3. Liez le projet à une base de données SQL2008 comportant plus de 1 000 procédures stockées. Sélectionnez 1000 pour 'Nombre maximal de fichiers par dossier'.
  4. Autorise VS à écrire toutes les procédures stockées. Il se séparera automatiquement en lots de 1000 et créera un nouveau dossier 'Proc1', 'Proc2' pour chaque lot si nécessaire.
  5. Ouvrez une nouvelle comparaison en faisant un clic droit sur le projet SQL> sélectionnez "Schema Compare".
  6. Vérifiez la base de données synchronisée correctement en comparant le projet SQL à votre base de données d'origine . Il ne devrait pas y avoir de changements en attente.
  7. Créez une nouvelle procédure stockée dans la base de données qui a été synchronisée.
  8. Exécutez à nouveau la comparaison, cela devrait maintenant afficher la nouvelle procédure stockée sous le type «Ajouter».
  9. Cliquez sur 'Mettre à jour' et autorisez VS à créer un script pour la nouvelle procédure. Au lieu de placer le nouveau script dans la structure de dossiers 1000 délimitée d'origine, il placera le nouveau script directement dans le dossier 'Stored Procedures'.

Répondre

0

C'est un scénario intéressant. Je vais vérifier un de ces jours.

Voici mes 2 cents. Après le chargement initial de tous les objets de la base de données dans un projet de base de données I (ou équipe de développement) arrêter la pratique d'ajouter de nouveaux SP ou des objets directement à la base de données via SSMS. Au lieu de cela, je les ajoute au projet de base de données et les déploie sur tous les serveurs dont j'ai besoin. Le projet de base de données agit comme la véritable source de code à partir de ce point-là. En plus de cela, vous pouvez tirer parti de la fonctionnalité de branchement TFS pour conserver la version QA, la version Prod des projets de base de données. J'essaie également de donner des noms significatifs aux dossiers aux catégories les SPs sous le dossier stocké de Proc qui aide dans mon futur maintien de code.