2011-11-29 62 views
9

我有两个大表,并希望将所有列名(不作为视图)合并到一个新表。插入到创建新表

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

+0

你不能直接做,因为你需要指定如何组合两个数据集。 – Viruzzo

+0

@维鲁佐那不一定是真的;你可以使用'CROSS JOIN'(正如我在我的回答中提到的)。 –

+0

是真的,但是他会得到一个两个笛卡尔乘积的表。我想他应该清楚他想要什么样的结果。 – Viruzzo

回答

13
SELECT top 0 * 
INTO NewTable 
FROM BigTable1 
    CROSS JOIN BigTable2 
+0

或者,如果您有'INFORMATION_SCHEMA'模式的权限,则可以通过'INFORMATION_SCHEMA.COLUMNS'表中的select语句生成'CREATE TABLE'脚本,该表还包含列数据类型。 –

0

如果您有创建权限,你应该能够使用:

INSERT INTO MyTable SELECT语句来做到这一点。

编辑:

我是有错

SELECT * INTO MYNEWTABLE FROM MYSOURCETABLE 
+1

'INSERT INTO'不会创建一个新表。 –

+1

不要认为这适用于T-SQL。 – Bert

+0

是的,有一段时间,我知道这是与进入声明有关。谢谢! –

6

对于TSQL,

SELECT ... 
INTO MyTable 
FROM ... 
3

您可以使用SELECT INTO TSQL查询 - 见MSDN link

相关问题