如何基于另一个表创建表

时间:2013-08-15 13:48:14

标签: sql-server sql-server-2008 create-table

我想根据另一个表的定义创建一个表。

我来自甲骨文,我通常会这样做:

 CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;

我似乎无法在SQL Server 2008中执行此操作。

2 个答案:

答案 0 :(得分:73)

在SQL Server中没有这样的语法,尽管PDW中确实存在CREATE TABLE AS ... SELECT。在SQL Server中,您可以使用此查询创建一个空表:

SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;

(如果您想复制表包括所有数据,请忽略WHERE子句。)

请注意,这会创建相同的列结构(如果存在,则包括IDENTITY列),但不会复制任何索引,约束,触发器等。

答案 1 :(得分:17)

select * into newtable from oldtable