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

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

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

【问题讨论】:

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

标签: sql database tsql insert


【解决方案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 不会创建新表。
      猜你喜欢
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2012-10-17
      • 2021-04-03
      • 2018-12-10
      • 1970-01-01
      相关资源
      最近更新 更多