【问题标题】:Is there a built-in way to store a version number against a stored procedure?是否有一种内置方法可以针对存储过程存储版本号?
【发布时间】:2011-03-10 14:40:59
【问题描述】:

我的应用程序需要在 SQL Server 数据库中维护一个存储过程。当应用程序运行时,如果 sproc 不存在,它将创建它,如果有新版本可用,它需要升级(删除并重新创建)它。

所以,我需要某种方法来针对该存储过程存储一个数字。

显然,我可以在使用procedurename, version 创建的表中存储一行,如果没有更好的方法,我会这样做。

但是,我想知道 SQL Server 是否有适当的机制来存储这样的元数据。我可以设置自定义对象属性之类的吗?

【问题讨论】:

    标签: sql-server sql-server-2008 stored-procedures metadata


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      SQL Server 没有内置的方法来做你想做的事。它们提供了任意数量的工具、功能和特性,您可以使用它们来构建这样的解决方案,但您必须自己构建它。

      【讨论】:

        【解决方案3】:

        虽然可以使用扩展属性来满足您的要求,但我建议您使用自己推荐的方法将procedure_nameversion 存储在一个表中。从长远来看,经验表明,您不应该依赖在未来版本中可能/将/应该/可能会破坏的东西。从长远来看,拥有自己的基础架构比依赖某些可能与不同 RDBMS 不兼容的特性要好。也许有一天您需要将您的应用程序转移到另一个 RDBMS,只是可能,如果您现在考虑一下,成本会低得多。

        【讨论】:

        • 我们非常不太可能从 SQL Server 迁移(如果我们这样做,我们会遇到比这更大的问题) - 您是否期望扩展属性在未来中断/更改SQL Server 的版本?
        • @Blorgbeard,我不希望这样,也不能排除它,但我更喜欢 developers 拥有 Total 控制权的解决方案。
        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多