有没有办法在VS2010数据库项目中抑制SQL03006错误?

zam*_*6ak 15 visual-studio-2010 datadude sql-server-2008-r2

首先,我知道我得到的错误可以通过创建引用项目(数据库服务器类型)然后在我的数据库项目中引用它来解决...但是,我觉得这有点矫枉过正,特别是对于小团队而言开发人员和数据库管理员之间没有特定的角色分离.但是,让我们再讨论一下这个问题...... DAC也是如此......不能使用受支持的有限对象的DAC b/c ...

问题 现在,问题是:我可以(以及如何)在构建我的数据库项目时禁用SQL03006错误.在我的情况下,生成此错误是因为我正在创建一些登录"未解决"的用户...我认为这应该是可能的,我希望,因为我"知道"在部署脚本之前服务器上将存在登录. .我也不想维护数据库服务器项目,所以我可以保持refs解决(除了服务器级别的登录,我什么都没有)...

解决方法 使用前/后部署脚本,让secript工作是微不足道的......

解决方法问题 您必须注释掉用户脚本(使用登录引用)以进行解决方法...一旦您这样做,.sqlpermissions就会弹出,说没有引用的用户......然后您必须注释权限并将它们放在post deploy脚本中......这种解决方法的主要缺点是你无法在最大程度上利用模式比较(你必须指定忽略用户/登录/权限)

所以我想要的只是1.仅维护DB项目(不引用DB Server项目)2.禁用/禁止SQL03006错误3.能够在我的DB项目中使用模式比较

我要求不可能吗?:)

干杯

PS如果有人知道更好的VS2010数据库项目模板/工具(对于SQL Server 2008 R2),请分享...

noo*_*and 7

有两种解决方法:

1.关闭任何模式检查(工具>选项>数据库工具>模式比较> SQL Server 200x,然后是对象类型选项卡)以查找与用户或安全相关的任何内容.这是一个永久的修复

2.完成模式比较并将与用户或安全相关的任何内容标记为Skip,然后生成SQL比较脚本.这是每个架构比较修复程序.

这应该是显而易见的,但如果您的项目中已经有脚本引用了登录或角色,那么删除它们就不会创建它们.