【问题标题】:sql server 2005 source controlsql server 2005 源代码管理
【发布时间】:2010-11-13 03:10:11
【问题描述】:

我已将 Team Foundation Server 连接到我的 SQL Server 2005 Management Studio,并将我的存储过程添加到 TFS 的新项目中。我所有的 SP 都已签入,一切正常。但我有一个问题。 我的项目显示在解决方案资源管理器中,我的对象资源管理器在左侧显示所有数据库和 SP。如果另一个用户进来并创建了一个新的 SP,则该 SP 不应添加到 TFS。有没有办法确保人们只能从解决方案资源管理器运行 SP 而不能从对象资源管理器创建?

【问题讨论】:

    标签: sql-server sql-server-2005 version-control tfs


    【解决方案1】:

    您可以限制人们创建存储过程的权限。您需要每个人都通知您的 DBA 运行脚本来创建存储过程。

    【讨论】:

      【解决方案2】:

      如果您使用的是 Team System for Database Professionals,您可以将架构与数据库项目进行比较。然后你会注意到数据库中有一个新的存储过程。这并不完全是您所要求的,但它会给您一种查看所有添加的存储过程的方法,这样您就不会被蒙在鼓里。您可以计划每次在发布周期中的某个特定时间点运行此比较。

      【讨论】:

        【解决方案3】:

        对象资源管理器中的那些是数据库中的那些,它们是唯一运行过的。


        基于 cmets 的更新:

        您应该像对待代码一样对待数据库。您需要自动化测试以确保您签入的内容不会破坏任何内容,并且它实际上会执行您希望它执行的操作。然后,您需要设置一个持续集成系统,以便在任何时候签入任何东西,它都已构建、单元测试、部署和集成测试。

        对于数据库,这将涉及针对干净的数据库运行所有更新或创建脚本,以确保它们在您准备好投入生产时运行;然后测试存储过程以确保它们按预期执行;然后测试所有使用它们的代码;并在每次签入时都这样做,以便在引入错误时快速发现任何问题。

        【讨论】:

        • 我知道它们是什么……那不是我的问题。我的问题是如何确保用户创建的 SP 被添加到 TFS 项目中,而不是将 TFS 作为备份
        • 我还是不明白。您想确保将创建的每个存储过程都添加到 TFS 项目中吗?还没完成?
        • 事情就是这样。我有 1 个数据库,比如 10 个 SP。现在我将这些 SP 添加到 TFS 解决方案中。所以现在一切都很好。一个新用户来了,在数据库中创建了一个新的 SP,却忘记在 TFS 中添加它。有没有办法限制他的疏忽?就像任何创建的 SP 都是在 TFS 解决方案本身中强制创建的一样?
        • 不,这不是一个好主意。同样,他会创建它,而您希望它在完成之前签入。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多