插入创建新表

Posted

技术标签:

【中文标题】插入创建新表【英文标题】:Insert into create new table 【发布时间】:2011-11-29 16:45:10 【问题描述】:

我有两个大表,想将所有列名(不是视图)合并到一个新表中。

没有权限右键单击每个表并选择 CREATE TO SCRIPT,所以我想知道是否有办法在不指定列数据类型的情况下将两个表插入到新表中?

【问题讨论】:

您不能直接这样做,因为您需要指定如何组合两个数据集。 @Viruzzo 这不一定是真的;您可以使用CROSS JOIN(正如我在回答中提到的那样)。 true,但随后他将获得一张包含两者的笛卡尔积的表格。我想他应该说清楚他想要什么样的结果。 【参考方案1】:
SELECT top 0 *
INTO NewTable
FROM BigTable1
    CROSS JOIN BigTable2

【讨论】:

或者,如果您拥有INFORMATION_SCHEMA 架构的权限,您可以通过INFORMATION_SCHEMA.COLUMNS 表上的select 语句生成CREATE TABLE 脚本,该表还包含列数据类型。跨度> 【参考方案2】:

对于 T-SQL,

SELECT ...
INTO MyTable
FROM ...

【讨论】:

【参考方案3】:

您可以使用SELECT INTO TSQL 查询 - 请参阅MSDN link。

【讨论】:

【参考方案4】:

如果你有创建权限,你应该可以使用:

INSERT INTO MyTable SELECT 声明来做到这一点。

编辑:

我错了

SELECT * INTO MYNEWTABLE FROM MYSOURCETABLE

【讨论】:

INSERT INTO 不会创建新表。

以上是关于插入创建新表的主要内容,如果未能解决你的问题,请参考以下文章

创建表,然后将数据从另一个表插入到新表中

MYSQL将查询结果插入新表

SQL中一次插入多条数据

如何在2个表之间加入新表?

PL/SQL 仅使用游标将 2 个表中的数据检索到新表中

如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中