2017-09-15 2 views
0

Problème: Nous devons supprimer les objets SQL morts (tables, vues, procs stockés, etc) de la base de données Azure sql que certains développeurs ont directement créés sur la base de données sql qui ne sont pas utilisés et ne font pas partie des projets sql db (sqlproj).Comment obtenir une différence entre les objets SQL dans la base de données Azure Sql et ceux créés à partir de sqlproj?

Alors je voulais savoir s'il y avait un moyen d'identifier ces objets SQL morts ou de trouver la différence entre les objets SQL dans la base de données Sql vs celle créée à partir de sqlproj?

Existe-t-il un indicateur dans le serveur SQL? Des outils de données qui peuvent aider à réaliser ceci ou n'importe quoi qui peut me faire la différence?

+0

Quand vous base de données SQL, auquel faire référence? (Il existe tellement de bases de données SQL différentes.) – jarlh

+0

Comme je l'ai mentionné "Base de données Azure SQL" –

Répondre

0

Vous pouvez déployer à l'aide/Action: DeployReport

https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_5

Cela vous donnera une liste des objets:

  • existent sur les deux, mais sont différents
  • n'existent que dans la dacpac
  • Existe seulement dans la base de données en direct

Vous pouvez également le faire en utilisant l'outil de comparaison à l'intérieur de studio visuel (ssdt) ou utiliser quelque chose comme redgate sql comparer - si c'est un je vais probablement utiliser comme je préfère l'interface utilisateur, mais j'ai une copie de Il peut donc :)

Ce problème est normalement résolu en déployant simplement et tout élément de la base de données qui n'est pas dans le contrôle de source est supprimé. Si vous suivez toujours le processus de déploiement de dacpac, vous ne pouvez pas vous retrouver dans cette situation.

Il semble que vous vouliez probablement faire une seule chose pour découvrir ce qui est différent et peut-être tester ces changements quelque part avant de les laisser tomber.

Tout le monde travaillant avec ssdt a eu ce problème à un moment donné et la seule façon de le réparer est de mettre le sqlproj ou la base de données dans un état connu et continuer à déployer depuis dacpac.

ed

+0

Merci Ed pour la réponse. nous déployons dacpac en permanence. Mais maintenant que nous déposons des objets sql de sqlproj, nous sommes confrontés à des erreurs lors du déploiement car il y a des réfractions aux objets sql inconnus (objets morts) dans sql db. Maintenant, vérifiez le lien que vous avez partagé. Merci encore :) –

0

Vous pouvez utiliser le schéma de comparer les options disponibles sur SQL Server Data Tools (SSDT) ​​comme expliqué here et here. Vous pouvez télécharger gratuitement SSDT à partir de here.

Espérons que cela aide.