AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 122146
Accepted
Jason
Jason
Asked: 2010-03-14 00:53:55 +0800 CST2010-03-14 00:53:55 +0800 CST 2010-03-14 00:53:55 +0800 CST

MSSQL 替换 Live Web App 中的数据库

  • 772

我有一个当前正在运行的网络应用程序。我需要对数据库进行重大修改,现在我需要替换当前的数据库。

我的开发 SQL 实例不是实时的。我通常只是对新数据库进行备份,将旧数据库吹走并恢复我更新的数据库。但现在我有了需要保存的数据。

大多数当前表都已更改,因为添加了额外的列,所有现有列仍然存在且未更改。

我可以访问 Management Studio。

这样做的正确方法是什么?

sql-server sql database database-administration
  • 1 1 个回答
  • 256 Views

1 个回答

  • Voted
  1. Best Answer
    Greg Bray
    2010-03-14T13:04:25+08:002010-03-14T13:04:25+08:00

    执行此操作的“正确方法”是将开发期间对数据库的任何更改仅视为临时更改并编译数据库构建脚本列表,以便您可以在生产数据库上重建新模式。您所做的任何更改都应存储在与数据库版本(1.0、1.1、1.2...)相关联的 SQL 升级脚本中,或者更好的是与您的软件代码一起放入源代码存储库以进行版本控制。当您想要更新生产数据库时,您将运行更新脚本序列以将数据库升级到最新版本。

    您有时可以在 Management Studio 中处理您的开发数据库后生成更改脚本,方法是右键单击表或存储过程并选择“脚本至”。这将生成可用于构建更新脚本的 alter 或 create 语句。完成所有更新脚本后,将生产数据库复制到开发箱并测试升级以确保一切正常。然后,当您准备好更新实时系统时,创建备份,然后在生产服务器上运行脚本。

    另一种方法是使用正确的架构生成一个空白数据库,然后将所有数据复制到空白数据库中。对于复杂的模式,这通常很难做到,并且该过程可能需要大量停机时间,而使用更新脚本通常可以在最短的停机时间内完成。

    有关详细信息,请参阅有关管理数据库版本和升级的问题。

    • 2

相关问题

  • sql server 连接字符串上的网络数据包大小以提高吞吐量

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • SQL 洗衣清单

  • OPENROWSET、二进制文件、varchars 和 varbinaries

  • 聚集索引与非聚集索引?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve