2011-11-29 63 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