【问题标题】:How to generate the Alter,Update & Create Script in SSMS?如何在 SSMS 中生成 Alter、Update 和 Create 脚本?
【发布时间】:2012-08-29 06:07:03
【问题描述】:

您好,我使用的是 SQL SERVER 2008 R2,我有 2 个数据库

1] ABC (with only structure like schemas, tables but no data in the table) 
2] ABC1 (with schemas, tables and data in the tables)

我在 Schema 和 Tables 级别进行了比较,我发现 #2 中的表已更改但 #1 中没有,我想知道如何生成更改脚本以更改 #1 中的表?以及如何生成 #1 中缺少的 Alter、Update 和 Create 脚本? 第一个是旧数据库,第二个是新数据库。

【问题讨论】:

    标签: sql-server-2008 sql-server-2008-r2 sql-server-2008r2-express


    【解决方案1】:

    ALTER To 选项在“脚本表”菜单选项中被禁用!所以如果你想生成一个脚本,你会怎么做呢?好吧,当您更改表格时,您不能这样做。

    为了生成脚本,首先右键单击要更改的表并选择设计。

    现在继续添加您的新列,更改字段类型等。完成更改后,您希望右键单击任何列或空白区域,您将看到选项 Generate Change Script is now可用。

    现在继续保存该文件,您将拥有 ALTER TABLE 脚本!

    来源:How to Generate an Alter Table Script in SQL

    【讨论】:

    • 我必须对此进行正确的动态查询,该查询会比较架构和表,如果缺少,那么它将生成一个脚本来更新并使数据库等于新数据库。
    【解决方案2】:

    正如 SSMS 所说,您会想要查看脚本,但您需要做的就是右键单击 #2 中的表,选择 Script Table as > DROP And Create To > File...

    然后在 #1 上运行脚本。

    根据您在 #2 中的数据量(以及您错过两个数据库之间某些差异的可能性),恢复 #2 的备份然后运行截断所有表的脚本可能会更容易。

    【讨论】:

      【解决方案3】:

      您可以使用software for compare same DB schema。该软件在比较多数据库之间的数据库模式后,为您提供统一数据库的脚本。

      例如在 redgate 软件中:

      1. 查看选定对象的比较结果
      2. 选择要统一的对象
      3. 开始统一数据库

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-14
        • 1970-01-01
        相关资源
        最近更新 更多