创建新表并从旧表中插入记录

SELECT * INTO NewTable FROM OldTable

创建一个包含旧表结构的新表,并将所有行插入到新表中。

一些限制

  1. 你不能将表变量或表值参数指定为新表。
  2. 即使源表已分区,也无法使用 SELECT … INTO 创建分区表。SELECT … INTO 不使用源表的分区方案; 相反,新表是在默认文件组中创建的。要将行插入分区表,必须首先创建分区表,然后使用 INSERT INTO … SELECT FROM 语句。
  3. 源表中定义的索引,约束和触发器不会传输到新表,也不能在 SELECT … INTO 语句中指定。如果需要这些对象,则可以在执行 SELECT … INTO 语句后创建它们。
  4. 指定 ORDER BY 子句不保证按指定顺序插入行。当稀疏列包含在选择列表中时,稀疏列属性不会传输到新表中的列。如果新表中需要此属性,请在执行 SELECT … INTO 语句后更改列定义以包含此属性。
  5. 当计算列包含在选择列表中时,新表中的相应列不是计算列。新列中的值是 SELECT … INTO 执行时计算的值。

[ sic ]