代码之家  ›  专栏  ›  技术社区  ›  Carter Medlin

Visual Studio 2010 SQL Server数据库项目-忽略存储过程和函数

  •  0
  • Carter Medlin  · 技术社区  · 14 年前

    我非常喜欢Visual Studio 2010中新的SQL Server数据库项目。我也喜欢用 为目标数据库中但不在数据库项目中的对象生成DROP语句 “部署属性中的选项。

    但是,我不想使用这个接口来管理存储过程和函数;我有另外一个工具来实现这一点。每次我进行构建和部署时,VS都会删除我用外部程序创建的存储过程。我希望基本上“忽略”存储过程和函数。

    在构建SQL Server数据库项目时,是否有一种方法可以忽略存储过程和函数?

    我将无法使用 生成DROP语句… “如果我想使用外部工具来存储过程和函数,则选择此选项。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Remus Rusanu    14 年前

    VSDB将过程和函数的定义存储在纯SQL文件中。我的建议是让“其他工具”将过程和函数作为SQL文件直接放到vsdb项目中, 然后 构建您的vs-db项目并部署。通过这种方式,您可以根据模式免费检查过程和函数,因为vs db构建将验证它们。
    更好的是,让“其他工具”在VS DB解决方案生成过程中创建SQL定义作为自定义生成步骤的一部分。

    我理解“另一个工具”可能不会合作,并希望将其输出直接部署到数据库中(即连接并创建过程),但如果您可以修改它以生成SQL文件,那么就值得与VS DB进行集成并进行统一部署。

    让vs-db“忽略”您的过程和函数可能会工作,但您可能会遇到各种问题,因为当vs-db为表等部署新的模式时,它可能会删除并重新创建这些表,从而破坏与“其他工具”过程和函数的依赖关系,破坏所需的访问权限,以及谁知道还有其他什么。更不用说,如果您只有一个带有SchemaBinding的函数,那么它将完全阻止VSDB部署。因为标量函数通常 require SCHEMABINDING to prevent spools