【问题标题】:Is there a way to suppress SQL03006 error in VS2010 database project?有没有办法抑制VS2010数据库项目中的SQL03006错误?
【发布时间】:2011-02-14 18:21:50
【问题描述】:

首先,我知道我得到的错误可以通过创建参考项目(数据库服务器类型)然后referencing it in my Database project...来解决 但是,我发现这有点过头了,特别是对于开发人员和数据库管理员之间没有特定角色分离的小型团队。但是,让我们再讨论一下吧……DAC 也是如此……不能使用支持有限对象的 DAC b/c...

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

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

解决方法问题 您必须注释掉用户脚本(使用登录引用)才能解决... 一旦你这样做,.sqlpermissions 就会爆炸,说没有引用的用户......然后你必须将权限注释掉并将它们放在部署后脚本中...... 此解决方法的主要缺点是您无法充分利用架构(您必须指定忽略用户/登录名/权限)

再说一遍,我想要的只是 1.只维护DB项目(不引用DB Server项目) 2.禁用/抑制SQL03006错误 3. 能够在我的数据库项目中使用模式比较

我要求不可能吗? :)

干杯

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

【问题讨论】:

    标签: visual-studio-2010 sql-server-2008-r2 datadude


    【解决方案1】:

    有两种解决方法:

    1。 关闭任何与用户或安全相关的架构检查(工具 > 选项 > 数据库工具 > 架构比较 > SQL Server 200x,然后是对象类型选项卡)。这是永久修复

    2。 通过模式比较并将任何与用户或安全相关的内容标记为跳过,然后生成您的 SQL 比较脚本。这是每个架构比较修复。

    这应该很明显,但如果您已经在您的项目中有引用登录名或角色的脚本,则删除它们并且它们不会被创建。

    【讨论】:

    • 这部分有帮助,项目编译但部署脚本仍然生成 drop user 语句
    • 在VS2001 SP1中,没有“工具>选项>数据库工具>模式比较”
    • 这可能是一个安装选项? 猜测>。我正在运行 VS2010 SP1 并假设这就是您在上面的评论中说“VS2001 SP1”时的意思?
    • 你运行的是哪个版本的VS2010? DB 项目仅在 Premier、Database Edition 和 Ultimate 中受支持。 Pro及以下不支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 2021-07-03
    相关资源
    最近更新 更多