Sql 从多个表中获取数据,这些表之间没有关系

Sql 从多个表中获取数据,这些表之间没有关系,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,每周我都会将excel工作表转换为SQL数据库,该excel工作表给我30个具有相同结构和字段定义的差异表,但这些表之间没有关系 因此,我想将这30个表中的数据合并到一个表中。我正试图编写T-sql来实现这一点,但我失败了,因为我使用了INFORMATION_SCHEMA.Tables或sys.Tables来获取表名,并继续在一个查询中从这些表中获取数据。要将表与完全相同的模式组合在一起,请执行以下操作: SELECT * FROM Table1 UNION SELECT * FROM Tabl

每周我都会将excel工作表转换为SQL数据库,该excel工作表给我30个具有相同结构和字段定义的差异表,但这些表之间没有关系


因此,我想将这30个表中的数据合并到一个表中。我正试图编写T-sql来实现这一点,但我失败了,因为我使用了INFORMATION_SCHEMA.Tables或sys.Tables来获取表名,并继续在一个查询中从这些表中获取数据。

要将表与完全相同的模式组合在一起,请执行以下操作:

SELECT * FROM Table1
UNION
SELECT * FROM Table2
如果整个数据库由这些表组成,则应该能够使用spmsforeachtable过程

CREATE TABLE #TempTable (Col1 INT, Col2 NVARCHAR(50))
sp_msforeachtable 'INSERT INTO #TempTable (Col1 , Col2) SELECT Col1 , Col2 FROM ?'
SELECT * FROM #TempTable
DROP TABLE #TempTable

要将表与完全相同的架构组合在一起,请执行以下操作:

SELECT * FROM Table1
UNION
SELECT * FROM Table2
如果整个数据库由这些表组成,则应该能够使用spmsforeachtable过程

CREATE TABLE #TempTable (Col1 INT, Col2 NVARCHAR(50))
sp_msforeachtable 'INSERT INTO #TempTable (Col1 , Col2) SELECT Col1 , Col2 FROM ?'
SELECT * FROM #TempTable
DROP TABLE #TempTable

有一个内置的存储过程sp_MSforeachtable,它允许您查看所有表并转储到temp表中。但是它是选择性的,所以它可以在一个DB中处理所有表。很抱歉打扰您Dustin,但我是新使用此sp的,所以您能告诉我如何使用此spEXEC sp_MSForEachTable“插入新表选择”吗?,FROM?“是吗?”Hi Dustin,我正在接受您的查询并编辑它,以精确地确定我在数据库中想要的内容,它会变成这样创建表Ettable[f2]bigint,[f3]NVARCHAR255,[f4]NVARCHAR255,[f5]NVARCHAR255 exec sp_msforeachtable'插入Ettable f1,f2,f3,f4,f5选择f1,f2,f3,f4,f5 FROM?'SELECT*FROM tentable DROP TABLE tentable但它返回错误无效字段名f1谢谢Dustin我修复了它非常感谢您的帮助我有一个内置的存储过程spmsforeachtable,它允许您查看所有表并转储到临时表中。但是它是选择性的,所以它可以在一个DB中处理所有表。很抱歉打扰您Dustin,但我是新使用此sp的,所以您能告诉我如何使用此spEXEC sp_MSForEachTable“插入新表选择”吗?,FROM?“是吗?”Hi Dustin,我正在接受您的查询并编辑它,以精确地确定我在数据库中想要的内容,它会变成这样创建表Ettable[f2]bigint,[f3]NVARCHAR255,[f4]NVARCHAR255,[f5]NVARCHAR255 exec sp_msforeachtable'插入Ettable f1,f2,f3,f4,f5选择f1,f2,f3,f4,f5 FROM?'SELECT*FROM tentable拖放表tentable但返回错误无效字段名F1谢谢Dustin我修复了它非常感谢你真的帮了我吗