0

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

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

在构建 SQL Server 数据库项目时,有没有办法忽略存储过程和函数?

如果我想将我的外部工具用于存储过程和函数,我将无法使用“生成 DROP 语句... ”选项。

4

1 回答 1

2

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

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

让 VS DB“忽略”您的过程和函数可能会起作用,但您可能会遇到各种问题,因为当 VS DB 为表等部署新架构时,它可能会删除并重新创建它们,从而破坏与您的“其他”的依赖关系工具的程序和功能,打破所需的访问权限,谁知道还有什么。更不用说,如果您只有一个带有 SCHEMABINDING 的功能,它将完全阻止 VS DB 部署。而且由于标量函数通常需要 SCHEMABINDING 来防止线轴......

于 2010-05-25T22:45:47.650 回答