我希望下面的比较不会显示差异。根据MSDN (请参阅第7步),应该有一个SQLCMD变量函数可用,我找不到。本文档适用于SQL 2010,但我使用的是2012版本。此页面上似乎没有2012版本的文档。SQLCMD变量和SSDT模式比较问题
如何指定$(DatabaseName)
的值,以便进行比较?我已经有了我的数据库项目设置中指定的值。
我希望下面的比较不会显示差异。根据MSDN (请参阅第7步),应该有一个SQLCMD变量函数可用,我找不到。本文档适用于SQL 2010,但我使用的是2012版本。此页面上似乎没有2012版本的文档。SQLCMD变量和SSDT模式比较问题
如何指定$(DatabaseName)
的值,以便进行比较?我已经有了我的数据库项目设置中指定的值。
您可以围绕此模式比较你的开发数据库,而不是项目,到现场数据库。请记住,您必须首先将项目部署到开发数据库。
仅供参考 - 变量未被替换的事实只是比较窗口中的一个问题。在比较过程中,变量不会导致错误的差异(换句话说,Schema Compare会在比较时替换变量),并且在更新目标数据库时替换变量。
我试图捕获开发人员在dev中修改的内容数据库,然后更新该项目。如果我将该项目部署到开发中,是不是会消除它们的更改? –
它可能是用于开发目的的任何服务器,甚至可能是本地数据库实例或专用于模式比较的共享服务器。 – Keith
或者这里有一个想法...让MS修复他们的比较功能中的错误大声笑 – user5855178
我不认为你可以在项目和实时数据库之间做到这一点。即使该页面似乎暗示:“只有在比较两个项目时才能指定SQLCMD变量”如果生成脚本来更新数据库,会发生什么情况? –
另外,如果这是针对数据库本地的表,为什么要指定数据库名称?只需使用“dbo.ClaimProvider”,你应该全部设置。我知道跨数据库查询的情况是不同的,但是这似乎并没有跨越数据库。 –
@PeterSchott我做了很多的跨数据库连接,所以它看起来更好,所有名称一致,而不是在3和2部分名称之间切换。 –