标题说明了所有内容,但有关详细信息。当我在VS2015中使用架构比较工具用于我的SSDT项目和我在服务器上的数据库时。比较结果总是与用户不同。我检查它所说的差异,但环境之间没有任何区别。
我甚至从比较结果中更新了我的项目,试图纠正这些“差异”。然后我又进行了另一次比较,同样的用户又回来了差异......什么!哈哈。
任何人都知道会导致此同步问题的原因或我做错了什么?用户手动添加到服务器上的数据库,而不是通过SSDT部署,所以这可能是一个原因?
编辑:
答案 0 :(得分:3)
请点击找到的用户差异左侧的箭头。您将看到属性文件夹和缺少的登录信息,这是真正的区别。如果你去Schema Compare Options - >对象类型(标签) - >非应用范围 - >登录以将Login对象类型添加到您的比较中,然后您的问题将得到解决。
答案 1 :(得分:1)
虽然我认为这是一个解决方法(我还没有找到一个真正的解决方案来消除用户的比较,即使它们是不同的),这是我发现的最好的。只需从比较中排除用户。
您可以通过单击“架构比较”窗口上的齿轮图标并展开“应用程序范围”对象并取消选中“用户”(或者您要排除其他任何其他内容)来访问此菜单。
答案 2 :(得分:0)
至少在Visual Studio 2017中(看起来选项也在2015年),尝试使用Schema Compare选项,在“常规”选项卡下,取消选中“忽略登录SID”选项。
我和用户有同样的问题(没有为用户定义登录),并且取消选中此选项可以解决我的问题。我仍然选择了实际正确的用户更改,但对于未更改的现有用户,比较不再显示虚假项目。
答案 3 :(得分:0)