我有一个基于c#.net的
Windows应用程序,它使用Microsoft SQL Server 2008中的数据库.在第一次部署到我们的客户端时,我们创建了一个数据库副本并将其部署在客户端远程服务器上使用UI应用程序.客户端数据库可以是SQL Server 2005及更高版本.
在UI应用程序和相关数据库发生了很多变化的时候.由于这是一个胖客户端应用程序,客户端数据库不与我们的最新数据库同步,遗憾的是没有人记下所做的所有更改.所以我的挑战如下:
>与我的数据库相比,如何在客户端数据库中的数据库表中找到任何缺少的列?如果有的话?
>与我的数据库相比,如何在客户端数据库中的数据库表中找到任何缺少的主要/唯一约束?如果有的话?
>如何在数据库表中找到与我的数据库相比存在于客户端数据库中的任何缺失索引?如果有的话?
请记住,客户端数据库大小可能介于10-100GB之间,因此我无法删除所有客户端表并重新创建它.
最佳答案 您可以使用
Data-tier applications.它是SQL Server的内置功能,因此您不需要使用任何额外的工具.
您可以从数据库中提取数据层应用程序(在SSMS中右键单击 – >任务 – >提取数据层应用程序)到DACPAC文件,将文件复制到客户端的服务器并使用它来升级数据库(或生成更新脚本).
它还与SQL Server Data Tools很好地集成.