Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是否有针对存储过程存储版本号的内置方法?_Sql Server_Sql Server 2008_Stored Procedures_Metadata - Fatal编程技术网

Sql server 是否有针对存储过程存储版本号的内置方法?

Sql server 是否有针对存储过程存储版本号的内置方法?,sql-server,sql-server-2008,stored-procedures,metadata,Sql Server,Sql Server 2008,Stored Procedures,Metadata,我的应用程序需要在SQL Server数据库中维护一个存储过程。当应用程序运行时,如果存储过程不存在,它将创建存储过程;如果有新版本可用,它需要升级(删除并重新创建)存储过程 所以,我需要一些方法来存储一个数字,与存储过程相对应 显然,我可以在我用procedurename,version创建的表中存储一行,如果没有更好的方法,我会这样做 然而,我想知道SQL Server是否有这样一种存储元数据的适当机制。我可以设置自定义objectproperties或其他什么吗?SQL Server没有内

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

所以,我需要一些方法来存储一个数字,与存储过程相对应

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


然而,我想知道SQL Server是否有这样一种存储元数据的适当机制。我可以设置自定义objectproperties或其他什么吗?

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

使用扩展属性

下面是一篇关于如何更新它们的博文:

尽管可以使用扩展属性来满足您的需求,但我建议您使用自己推荐的方法将
过程\u name
版本
存储在表中。经验表明,从长远来看,你不应该依赖于未来版本中可能出现的问题。从长远来看,拥有自己的基础设施比依赖某些可能与不同RDBMS不兼容的功能要好。也许有一天你需要将你的应用程序迁移到另一个RDBMS,只是可能,如果你现在向前看,成本要低得多。

我们不太可能从SQL Server迁移出去(如果我们这样做,我们会遇到比这更大的问题)-你会期望扩展属性在SQL Server的未来版本中中断/更改吗?@Blorgbeard,我不希望出现这种情况,也不能排除这种情况,但我更喜欢开发人员完全控制的解决方案。