加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:11:30 所属栏目:MsSql教程 来源:网络整理
导读:我有一个应用程序将部署在带有SQL Server的生产PC上. 我想要能够在我的数据库中存储和检索模式的版本. 我对最佳做法感兴趣,能够实现这一目标,具有以下主要目标: 能够存储并轻松地检索数据库的版本号. 客户隐藏或更难找到和操纵. 创建新版本时,可以进行编辑/
我有一个应用程序将部署在带有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中时,它会执行检查,以确保其声明的版本与存储在源代码控件中的版本相对应.

希望这可以帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读