我想根据另一个表的定义创建一个表。
我来自甲骨文,我通常会这样做:
CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;
我似乎无法在SQL Server 2008中执行此操作。
答案 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