将CLR程序集部署到与其余对象不同的数据库中
问题描述:
我正在使用Visual Studio和SQL Server数据库项目通过TFS维护我的数据库对象。我在我的UnitTests中实现了一个使用RegEx模式匹配的CLR程序集。我想将此CLR部署到不同的数据库,而不是将数据库中其余对象部署到的数据库。将CLR程序集部署到与其余对象不同的数据库中
-
Database_1
- 包含了所有的数据库对象 -
Database_2
- 包含CLR大会和UDF的正则表达式模式匹配。
我想创建一个脚本来将CLR程序集和相关的UDF部署到一个数据库,同时创建脚本,将其余的更改部署到另一个数据库。我想这样做使用PRE/POST脚本使用sqlcmd
,因为我认为这是最简单的方法来做到这一点。
这可能吗?
答
发布到另一个数据库需要一个不同的数据库项目。他们应该能够处于相同的解决方案中,但拥有两个不同的数据库项目将允许不同的发布属性(例如目标数据库等)。或者,一个非常快速和容易,不用担心任何这将是使用SQLCLR函数库(我写的)。免费版本的SQL#包含多个RegEx函数以及其他许多函数。您可以将安装脚本(一旦将正确的数据库名称编辑到USE
声明中)保存到TFS中并完成它:-)。
你是否真的需要它在一个单独的数据库?你可以看看做一个复合项目(2个项目,2个dacpacs,1个数据库),并将所有内容都部署到你的单元测试环境中,但只有“真实”代码到你的“真实”环境 –