0
A
回答
0
您需要使用Dynamic Query
DECLARE @sql VARCHAR(max)=''
SET @sql = (SELECT @sql + 'select ' + column_name + ' from '
+ table_name + ' union all '
FROM master_table
FOR xml path(''))
SELECT @sql = LEFT(@sql, Len(@sql) - 9)
EXEC (@sql)
注:所有列的数据类型应该是相同的。如果不是的话,那么你可能需要做显式转换到varchar
SET @sql = (SELECT @sql + 'select cast(' + column_name + ' as varchar(4000)) from '
+ table_name
+ ' union all '
FROM Master_table
FOR xml path(''))
+0
是的...当然,列的数量应该是相同的:) – Anton
+0
但我有不同的列不同的列 –
0
假设在你的主表列出的所有表中具有相同的顺序和数据类型相同的列。然后,它会是如下:
create table ##a
(
Value int
)
create table ##b
(
Value int
)
create table ##c
(
Value int
)
declare @all table
(
Value int
)
declare @master table
(
TableName varchar(10)
)
declare @TableName varchar(10)
insert ##a values (1), (2), (3)
insert ##b values (4), (5), (6)
insert ##c values (7), (8), (9)
insert @master values ('##a'), ('##b'),('##c')
declare looper cursor local static forward_only read_only for
select TableName from @master
open looper
fetch next from looper into @TableName
while @@fetch_status = 0
begin
insert @all exec('select Value from ' + @TableName)
fetch next from looper into @TableName
end
close looper
deallocate looper
select * from @all
drop table ##a
drop table ##b
drop table ##c
如果表是不同的结构,请访问:Stored procedures and multiple result sets in T-SQL。它会将每个表格的内容压缩到单个XML单元格中。文章还解释了如何阅读它们。
0
我假设你在主表中使用了许多具有不同列的表。你应该循环你的主表。试试这个,
DECLARE @sql NVARCHAR(max) = ''
DECLARE @start INT = 1
,@end INT = 0
,@tablename VARCHAR(100) = ''
DECLARE @TableList TABLE (
id INT identity(1, 1)
,tablename VARCHAR(128)
)
INSERT INTO @TableList (tablename)
SELECT DISTINCT table_name
FROM YourMasterTableName
WHERE TABLE_NAME = 'productss'
SET @end = @@ROWCOUNT
WHILE (@start <= @end)
BEGIN
SET @tablename = (
SELECT tablename
FROM @TableList
WHERE id = @start
)
SET @sql = (
SELECT ',[' + column_name + ']'
FROM YourMasterTableName M
WHERE TABLE_NAME = @tablename
FOR XML path('')
)
SET @sql = 'SELECT ' + stuff(@sql, 1, 1, '') + ' FROM ' + @tablename
EXEC sp_executesql @sql
SET @start = @start + 1
END
相关问题
- 1. 如何以编程方式获取jsf或primeface数据表的所有行
- 2. laravel DB,获取所有数据表格
- 3. 如何编写SPQuery获取联系人列表的所有数据?
- 4. 如何编写xsl以获取所有重复标签的值?
- 5. 如何使用sequelize获取表格的所有数据
- 6. Listview以JSON格式获取列表中的所有数据
- 7. 获取所有日期以及来自表格的数据
- 8. 从用C#编写的程序获取数据到Java程序
- 9. 如何编写查询以查找具有特定数据的数据库中的所有表格
- 10. 以编程方式获取所有数据库列类型
- 11. 如何以编程方式获取sqlite中所有表的列表
- 12. 如何以编程方式获取WooCommerce中的所有产品?
- 13. 如何从数据库中的所有表中获取数据
- 14. 如何获取数据的所有行?
- 15. NHibernate:获取所有数据库表中的所有数据
- 16. 如何编写linq从不同的表中获取数据?
- 17. 如何编写连接到数据库并获取json格式数据的WCF服务程序
- 18. 获取数据网格中的所有数据并以CSV格式导出
- 19. iOS iBeacon:如何以编程方式获取所有proximityUUID?
- 20. 如何以编程方式获取所有SharePoint团队网站?
- 21. 如何以编程方式在ABAP中列出所有表格?
- 22. 如何编写查询,我可以按月获取数据?
- 23. 如何获取所选表格行的数据?
- 24. 如何以编程方式获取站点中所有Sitecore域的列表?
- 25. TeamFoundation 2008 SDK - 如何以编程方式获取所有变更集的列表?
- 26. 如何以编程方式获取Mongoid正在写入的当前数据库?
- 27. 如何从WPF中的数据网格中获取所有行
- 28. 获取Django中的所有表数据
- 29. MySQL - 获取表中的所有数据
- 30. 获取所有表中的数据
哪一个呢? Oracle或SQL Server? –
简单的答案是“动态查询”。所有列的数据类型也应该相同。 –
对于Oracle,您可以使用类型与表结构类似的'Type',并在'out'条件中提及它 –