gpt4 book ai didi

sql-server - 在 SQL Server 中存储数据库架构版本的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 07:35:52 25 4
gpt4 key购买 nike

我有一个应用程序,它将使用 SQL Server 部署在生产 PC 上。
我希望能够在我的数据库中存储和检索模式的一个版本。
我对能够实现这一目标的最佳实践感兴趣,主要目标如下:

  • 能够存储和轻松检索数据库的版本号。
  • 隐藏或更难被客户发现和操纵。
  • 可以在我们创建新版本时进行编辑/更改。
  • 备份 DB 或 detacting DB 保留版本 # 以供取证。

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

    任何想法或最佳实践?

    编辑:我发现可能有希望的一个选项是使用 SQL Server 扩展属性,将键|值分配给带有“Schema_Version”和版本号的数据库。它没有加密(但值可能是),也没有隐藏,但至少从我们的一些用户和现场人员浏览的实际数据库结构中删除(令我沮丧!:))

    最佳答案

    我是 Red Gate 的 SQL 源代码控制和 SQL 比较的产品经理。我们必须解决这个非常相同的问题,因为我们的工具需要知道数据库的版本,以便选择合适的迁移脚本来构建完整的部署脚本。

    我们考虑了一个版本表,这是最常设计的本土解决方案。但是,从我们的研究中我们了解到,用户希望保持数据库对象集“不受污染”,因此我们选择了数据库级别的扩展属性。我们将其附加到脚本中,如下所示:

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

    当数据库加载到 SQL 比较中时,它会执行检查以确保它声称的版本与源代码管理中存储的版本相对应。

    希望这可以帮助!

    关于sql-server - 在 SQL Server 中存储数据库架构版本的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10196904/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com