将CLR程序集部署到与其余对象不同的数据库中

问题描述:

我正在使用Visual Studio和SQL Server数据库项目通过TFS维护我的数据库对象。我在我的UnitTests中实现了一个使用RegEx模式匹配的CLR程序集。我想将此CLR部署到不同的数据库,而不是将数据库中其余对象部署到的数据库。将CLR程序集部署到与其余对象不同的数据库中

  • Database_1 - 包含了所有的数据库对象
  • Database_2 - 包含CLR大会和UDF的正则表达式模式匹配。

我想创建一个脚本来将CLR程序集和相关的UDF部署到一个数据库,同时创建脚本,将其余的更改部署到另一个数据库。我想这样做使用PRE/POST脚本使用sqlcmd,因为我认为这是最简单的方法来做到这一点。

这可能吗?

+0

你是否真的需要它在一个单独的数据库?你可以看看做一个复合项目(2个项目,2个dacpacs,1个数据库),并将所有内容都部署到你的单元测试环境中,但只有“真实”代码到你的“真实”环境 –

发布到另一个数据库需要一个不同的数据库项目。他们应该能够处于相同的解决方案中,但拥有两个不同的数据库项目将允许不同的发布属性(例如目标数据库等)。或者,一个非常快速和容易,不用担心任何这将是使用SQLCLR函数库(我写的)。免费版本的SQL#包含多个RegEx函数以及其他许多函数。您可以将安装脚本(一旦将正确的数据库名称编辑到USE声明中)保存到TFS中并完成它:-)。

+0

+1需要使用不同的数据库项目但实际上并没有upvoted,因为我不知道你的图书馆,所以不知道如果我会建议或不。 – Matt

+0

标记为答案。我最终为SQLCLR解决方案创建了另一个数据库项目。由于这只会在测试期间和测试服务器上使用,因此我可以在必要时将其部署到测试服务器,并且可以在我的数据库单元测试中引用它。 – Russ