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'條件中提及它 –