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
- Créer un nouveau projet SQL.
- Faites un clic droit sur le projet dans l'explorateur de solutions> sélectionnez 'Importer'> 'Base de données'.
- 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'.
- 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.
- Ouvrez une nouvelle comparaison en faisant un clic droit sur le projet SQL> sélectionnez "Schema Compare".
- 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.
- Créez une nouvelle procédure stockée dans la base de données qui a été synchronisée.
- Exécutez à nouveau la comparaison, cela devrait maintenant afficher la nouvelle procédure stockée sous le type «Ajouter».
- 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'.