执行后复制表

时间:2013-02-01 06:00:04

标签: sql

我想在执行该查询后创建新表

create table newTable as select * from oldTable

然而,这似乎不起作用。如何在执行某些查询后获取新表?

3 个答案:

答案 0 :(得分:1)

我不确定您使用的是什么DBMS或者您获得的错误,因此我将尝试回答多个系统。

如果您正在使用Oracle或PostgreSQL(可能存在此规则适用的其他系统),您的语法似乎是正确的。只是确保你的新表还不存在 - 否则就会出错。如果你试图插入一个现有的表 - 但我认为不是这样 - 你可以尝试类似的东西 -

INSERT INTO newTable SELECT * FROM oldTable

另一方面,如果您使用的是T-SQL(SQL Server),则可以选择新的表格。将使用旧表的架构创建新表。

您可以在MSDN Library了解有关INTO条款的更多信息。

您的代码应如下所示 -

SELECT *
INTO newTable 
FROM oldTable

并且,指定列名称和过滤器的方式也类似 -

SELECT  Column1, Column2, Column3, ...
INTO    newTable 
FROM    oldTable
WHERE   <Filter Condition>

无论情况如何,如果您指定详细信息,您将获得更多帮助。

答案 1 :(得分:1)

语法一般如下:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

例如:

CREATE TABLE suppliers
  AS (SELECT id, address, city, state, zip
      FROM companies
      WHERE id > 1000);

尝试删除星号(*)并添加括号。

阅读here了解更多示例。

答案 2 :(得分:0)

正如您所说,您希望在执行后将值复制到新表中 如果您使用游标运行存储过程,请关闭光标,然后使用以下查询

从表2中选择*进入表1

如果要复制选定的列,请转到

从表2中选择Coloumn1,column2,...到table1,其中............