实际上我有14个SQL Server表,其中11个可以减少到4个。
他们有相同的列名和值,我找不到合并到一个新表(我已经由SELECT INTO FROM创建)的解决方案。 还有可能添加一个增量计数器来标记带有ID的新增数据的每一行吗?
感谢您的帮助。
答案 0 :(得分:2)
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
)
添加增量计数器
将列设为IDENTITY
column
CREATE TABLE BigNewTable
(
Id int IDENTITY(1,1),
Col1 varchar (20),
Col2 varchar (20),
Col3 varchar (20)
);
答案 1 :(得分:2)
如果您只想将多个源表中的数据插入到一个目标表中,只需将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