sql-server – 在SQL Server中存储数据库模式版本的最佳做法?

前端之家收集整理的这篇文章主要介绍了sql-server – 在SQL Server中存储数据库模式版本的最佳做法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个应用程序将部署在带有sql Server的生产PC上.
我想要能够在我的数据库中存储和检索模式的版本.
我对最佳做法感兴趣,能够实现这一目标,具有以下主要目标:

能够存储并轻松地检索数据库的版本号.
>客户隐藏或更难找到和操纵.
>创建新版本时,可以进行编辑/更改.
>备份数据库删除数据库保留版本#取证.

我希望有一种方法可以在元数据中存储“版本”,而不是通过系统存储过程访问/设置普通表.

任何想法或最佳做法?

编辑:我发现一个可能有希望的选项是使用sql Server扩展属性,将分配给“Schema_Version”和版本号的密钥|值分配给DB.它不是加密的(但是值可以),并且不被隐藏,但是至少从我们的一些用户和现场人员浏览的实际DB结构中移除(对我的沮丧!:))

解决方法

我是Red Gate的sql Source Control和sql Compare的产品经理.我们必须解决这个同样的问题,因为我们的工具需要知道数据库所在的版本,以便选择适当的迁移脚本来构建完整的部署脚本.

我们考虑了一个版本表,这是最常用的本土解决方案.然而,从我们的研究中,我们了解到用户希望保持数据库对象的集合无污染,所以我们选择了数据库级扩展属性.我们将脚本添加到脚本中,如下所示:

IF EXISTS (SELECT 1 FROM fn_listextendedproperty(N'sqlSourceControl Database Revision',NULL,NULL))
  EXEC sp_dropextendedproperty N'sqlSourceControl Database Revision',NULL
EXEC sp_addextendedproperty N'sqlSourceControl Database Revision',@RG_SC_VERSION,NULL

数据库加载到sql Compare中时,它会执行检查,以确保其声明的版本与存储在源代码控件中的版本相对应.

希望这可以帮助!

猜你在找的MsSQL相关文章