插入创建新表
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
不会创建新表。以上是关于插入创建新表的主要内容,如果未能解决你的问题,请参考以下文章