其實我有14個SQL Server表,其中11個可以減少到4個。將3個表合併成一個表
他們得到了相同的列名和值,我找不到合併到一個新表(我已經創建了一個SELECT INTO FROM)的解決方案。 也有可能添加一個增量計數器來標記帶有ID的新添加數據的每一行嗎?
謝謝你的幫助。
其實我有14個SQL Server表,其中11個可以減少到4個。將3個表合併成一個表
他們得到了相同的列名和值,我找不到合併到一個新表(我已經創建了一個SELECT INTO FROM)的解決方案。 也有可能添加一個增量計數器來標記帶有ID的新添加數據的每一行嗎?
謝謝你的幫助。
INSERT INTO BigNewTable (col1, col2, col3)
SELECT col1, col2, col3
FROM
(
SELECT col1, col2, col3 FROM Table1
UNION ALL
SELECT col1, col2, col3 FROM Table2
UNION ALL
SELECT col1, col2, col3 FROM Table3
)
添加一個遞增計數器
CREATE TABLE BigNewTable
(
Id int IDENTITY(1,1),
Col1 varchar (20),
Col2 varchar (20),
Col3 varchar (20)
);
不工作沒有子選擇? –
@EstebanP .:應該也沒有子選擇。我更喜歡這個,如果我想添加額外的功能,例如刪除重複 –
如果你只是想從幾個源表中的數據插入到一個目的地表,你只需加入SELECT
與UNION ALL
即可在一個聲明中完成。
如果您在新的目的地表格中添加一個IDENTITY(1,1)的列,這會自動插入ID並且是您想要的計數器。
列應該像定義:ID int IDENTITY(1,1)
INSERT INTO mynewtable (col1, col2)
SELECT col1, col2
FROM oldtable1
UNION ALL
SELECT col1, col2
FROM oldtable2
UNION ALL
SELECT col1, col2
FROM oldtable4
UNION ALL
SELECT col1, col2
FROM oldtable4
INSERT newtable的SELECT FROM oldtable – Milney
欄我纔拿到你的權利?你只是想把幾張表的數據放在一張表中?如果是這樣,UNION ALL可能是你的朋友 –
沒有任何表結構我不能真正回答任何準確度,但是,使用插入,然後選擇表1中的列,並使用UNION ALL從其餘的選擇。對於ID使用IDENTITY(1,1)。 – Leonidas199x