代码之家  ›  专栏  ›  技术社区  ›  nsmyself

SQL Server 2008:在不同的数据库中重新创建相同的索引和统计信息

  •  1
  • nsmyself  · 技术社区  · 16 年前

    我最近被分配了更新“遗留”数据库的任务(以前由一个离开公司不久的前同事管理)。新数据库的结构与前一个数据库完全相同;唯一的区别在于内容本身,因为这个数据库现在有了更新的数据。

    问题是,旧的数据库有很多索引和统计信息,我也必须在新的数据库中实现这些索引和统计信息,我担心数据库创建脚本在高速公路上的某个地方丢失了。

    因此,如何(最好使用Transact-SQL)在新数据库上重新创建旧索引?

    干杯

    3 回复  |  直到 16 年前
        1
  •  1
  •   MrEdmundo    16 年前

    在SSMS中,您可以右键单击对象资源管理器中的索引,然后单击“脚本索引为”。然后可以针对新数据库运行脚本。

    编辑:

    如果您有许多索引,就不能很容易地在SSMS2005中编写所有索引的脚本。您可以看到类似这样的脚本: http://www.sqlservercentral.com/scripts/Miscellaneous/31893/

    另一个有趣的方法是使用c,请参见 http://blogs.msdn.com/benjones/archive/2008/08/27/how-can-i-generate-a-t-sql-script-for-just-the-indexes.aspx 举个例子。

        2
  •  3
  •   Brad    16 年前

    我将研究投资红门工具,这将很容易做到(索引、数据和对象可以同步)。

    如果您确实需要两个数据库上完全相同的统计信息,那么这很难做到,特别是如果您不手动更新统计信息。我只是担心什么红门可以先同步。

        3
  •  1
  •   kevchadders    16 年前

    尝试执行这些步骤

    • 右键单击数据库并选择 任务 然后 生成脚本…
    • 再次选择数据库,然后单击“下一步” (注意:您只需使用底部的勾选框,然后编写数据库中所有对象的脚本并完成-节省一些时间!)
    • 向下拖动该条直到到达 表/视图选项
    • 确保脚本索引设置为true,然后单击“下一步”
    • 选择要编写脚本的所需对象,然后单击“下一步”
    • 选择要编写脚本的项
    • 最后选择是否要在“文件/剪贴板/查询”窗口中编写脚本