如何获取Azure Sql数据库中的sql对象与从sqlproj创建的数据库之间的区别?

问题描述:

问题:我们需要从Azure sql数据库中删除死的sql对象,这些数据库有些开发人员已经在没有使用的sql数据库上直接创建并且不是sql数据库项目的一部分(sqlproj)。如何获取Azure Sql数据库中的sql对象与从sqlproj创建的数据库之间的区别?

所以我想知道是否有一种方法来识别那些死的SQL对象或找出Sql数据库中的SQL对象与从sqlproj创建的SQL对象之间的区别?

在Sql服务器中是否有一个标志数据工具可以帮助实现这个或任何可以让我有所不同的东西?

+0

当你SQL数据库,哪一个涉及到? (有这么多不同的SQL数据库。) – jarlh

+0

正如我所提到的“Azure sql数据库” –

您可以部署使用/动作:DeployReport

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

这会给你哪些对象的列表:

  • 同时存在于,但不同
  • 在只存在dacpac
  • 仅在直播数据库中存在

你也可以使用visual studio(ssdt)中的比较工具或使用类似redgate sql compare的东西来做到这一点 - 如果这是一个关闭我可能只是使用它,因为我更喜欢用户界面,但我有它也可以:)

这个问题通常是通过部署解决了并且数据库中任何不在源代码管理中的东西都被删除。如果您始终遵循从dacpac部署的流程,则无法进入这种情况。

这听起来像你可能想要做一次性的事情来找出不同的东西,也许在你放下它们之前在某处测试这些改变。

每个使用ssdt的人都有一些确切的问题,解决这个问题的唯一方法是让sqlproj或数据库进入已知状态并继续从dacpac部署。

+0

谢谢埃德的回应。我们实际上不断部署dacpac。但是现在,当我们从sqlproj中删除一些sql对象时,我们在部署时面临错误,因为在sql db中有一些对未知sql对象(死对象)的引用。现在,查看您分享的链接。再次感谢 :) –

您可以使用架构比较上的SQL Server数据工具(SSDT)作为解释herehere可用的选项。

您可以从here免费下载SSDT。

希望这会有所帮助。