管理 SQL Server 2008 数据库项目中的数据库子集

Posted

技术标签:

【中文标题】管理 SQL Server 2008 数据库项目中的数据库子集【英文标题】:Managing a subset of the database in a SQL Server 2008 DB Project 【发布时间】:2012-02-10 19:49:34 【问题描述】:

我是在 VS 2010 中使用 SQL Server 2008 DB 项目的新手。我找到了一个很好的 intro 来设置它们。他们如何创建表、存储过程等作为对象很好。但这也是一种限制吗?

我想用这个项目来管理 1 个存储过程(用于学习)。我不想导入整个数据库,因为 90% 的数据库是我们无法管理的。

我没有执行导入过程就创建了一个新项目。然后我添加了一个新的存储过程。现在我很难得到这个东西。我收到各种错误,说我有未解决的对象引用。

如何添加新的存储过程..构建它并将其部署到数据库?这种 SQL 项目是否可行,还是我需要退回到 VS 2008 及更低版本使用的旧的、简单类型的 SQL 项目?

更新 根据另一个post,对Database Project 类型的支持已不复存在。对我的情况的支持似乎已被删除。

2012 年 3 月 21 日更新 2 我安装了MSSCCI,它允许我直接将SSMS 与TFS 2010 一起使用。我不再需要并且发现设置过程对于大型数据库SQL 2008 项目来说是不可管理的。尤其是当您只管理一小部分数据库时。

【问题讨论】:

您发布的链接是关于旧式数据库项目的,而不是您所说的那些。 @John Saunders - 我指的是这两种类型。老款支持单项管理。新项目类型需要整个数据库。这就是我的问题的重点。 我的意思是它只是旧类型已经消失了。新类型仍然存在并且运行良好,但确实需要了解存储过程所引用的内容。不一定是整个数据库,而是存储过程引用的子集,以及它们引用的所有内容,等等。 @John Saunders - 我明白你在说什么。那仍然对我不起作用。意大利面条太长了,无法解开。我只想管理很小比例的数据库、存储过程和少数表。但是,它们的依赖关系在不断增长。在我的情况下,每次需要添加依赖项时都必须导入未知数量的对象。 还有一个完整的数据库项目,但是可以忽略它,只能处理部分项目。请注意,数据库项目不部署脚本——它们构建数据库模式的模型,然后基于模型部署“更改脚本”。如果他们不知道所有的数据库对象,那么他们就无法生成更改脚本。 【参考方案1】:

您可以Partition a Database Project by Using Partial Projects。这使得数据库项目可以知道数据库的整个架构,同时,您不需要维护整个架构。例如,您可以使用正在积极开发的数据库子集(或您负责的子集),但项目知道整个架构。这允许它在部署时通过将项目中的模式与目标数据库中的模式进行比较来创建更改脚本。

【讨论】:

这个部分项目是否与模式比较有关?当我进行比较时,我不断得到所有缺失的东西,而不是相关的东西减去已经通过数据库参考引用的东西。 我真的不记得了,我没有当前的例子可以检查。我希望如果您对“主”项目进行比较,它会起作用。整个想法是让项目了解完整的模式。不然怎么部署?【参考方案2】:

您必须导入新存储过程引用的所有架构对象。但这可能成为一项艰巨的任务,因为每个被引用的对象也需要它的所有引用。 链接服务器对象会带来更多麻烦。

【讨论】:

以上是关于管理 SQL Server 2008 数据库项目中的数据库子集的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 R2占用内存越来越大解决方法

SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中

SQL server2008-对象资源管理器-数据库

sql server 2008 之找不到SQL Server Management Studio的处理方法

如何查看sql server 2008的SQL语句执行错误日志

为 SQL Server 2008 数据库项目的每个单元测试插入测试数据