通过存储过程以编程方式将索引从一个表复制到另一个表?

Jok*_*ker 4 sql-server stored-procedures

我使用存储过程将表从一个数据库复制到另一个数据库。现在它确实

insert into copy 
   select * from original
Run Code Online (Sandbox Code Playgroud)

我也想从原始表中复制索引。最好的方法是什么?

JNK*_*JNK 7

这在 SQL 代码中是一件非常复杂的事情。这很复杂,因为索引有很多选择。潜在问题/并发症:

  • 覆盖索引
  • 包含的字段
  • 列顺序
  • 过滤索引
  • 复杂的索引类型(xml 索引等)

在 SSMS 中编写这些脚本或为此使用 .NET SMO 框架会更好。

为了适当地解决上述所有问题,需要查询大量系统表并使用CURSORs、WHILE循环或其他迭代结构来使事情按正确的顺序排列。

它不漂亮。