如何在Visual Studio 2010数据库项目中开发TSQL

10

听起来有些愚蠢的问题,让我先摆一下基础。

我已经成功创建了一个包含数百张表、存储过程、索引等组成我们生产数据库的数据库项目。

我已经成功将解决方案添加到源代码控制(TFS)中。

我做了一个更改(作为测试)以一些对象,并生成了一个部署脚本,整个系统非常令人印象深刻。但是看起来,从DB的角度来看,VS 2010的强项是部署而不一定是开发

关于在Visual Studio中进行数据库/TSQL开发的日常工作流程,我完全感到困惑。假设我需要向一个表中添加几列,并修改相关的存储过程以返回/更新这些列的数据。

虽然很容易修改我数据库模型中的所有脚本,但我希望能够将它们与一个可以进行一些测试的dev数据库隔离开来。但是如果没有手动将脚本更改为ALTER(或在CREATE之前添加DROP代码),就无法更新现有的proc。一两次这样做并不是问题,但在真正的Dev环境中,我们整天都在这样做。

也许答案是经常向dev服务器部署,就像我调试并对存储过程进行更改一样?这需要很多额外的工作量;在几秒钟内手动执行必要的脚本,构建和部署需要几分钟。此外,如果我们三个人向dev DB部署不同的更改,难道我们不会覆盖彼此的修改吗?

抱歉话说得有些长,但我不禁觉得我错过了简单的东西。

是否有任何书籍/教程/网络研讨会可以展示实际开发中这种类型的方法呢?

1个回答

6

我认为你说得很对。为了测试修改后的存储过程,您必须经历部署步骤以更新数据库。这就是离线开发模型的缺点。

在这里,我们收到了许多要求使SQL Source Control支持数据库项目的请求,这将允许开发人员从“在线”开发模型中受益,同时仍然受益于数据库项目功能。

[编辑]我们已经在SQL Source Control中添加了对数据库项目的“Beta”支持,这允许使用数据库项目格式进行连接的SSMS开发。只需从SQL Source Control链接到带有.sqlproj文件的文件夹并开始开发即可![/编辑]

与此同时,您必须定期部署到dev!

另一种选择是在真实数据库上进行开发,并使用Schema Compare功能将其同步回您的数据库项目。Schema Compare可在Visual Studio的高级和终极版本中使用。

David Atkinson 产品经理 Red Gate Software


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接