c# - 从多个基础的表中选择信息

标签 c# sql t-sql

如何在一个结果中从多个库的表中选择信息。我的想法是将它们放在DataTable中并在DataGrid中显示它们。

这是查询:

exec sp_msforeachdb 'use ?; IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb'' AND ''?'' <> ''addresses'' AND ''?'' <> ''ikamebeldizain'' AND ''?'' <> ''new2'' AND ''?'' <> ''sample'' AND ''?'' <> ''sitedatabase'' AND ''?'' <> ''StudentsTeachersTest'' AND ''?'' <> ''MicroinvestDatabasesCatalog'' select * from dbo.system;'

当我在 dataGrid 中尝试使用此查询时,我只有一行(第一个结果)。

最佳答案

要在 SQL 中附加多个结果集,您需要具有相同的结果结构(即:以相同的顺序返回相同的列),并告诉 SQL 使用 union all 将它们连接在一起(仅使用 union 将删除重复的行)。要跨不同数据库执行此操作,假设它们位于同一服务器上,您只需在查询中引用数据库即可:

select *
from Database1.dbo.system
union all
select *
from Database2.dbo.system

如果您尝试跨一组动态数据库执行此操作,则只能使用动态 SQL 来执行此操作,动态 SQL 将根据脚本中前面提供的数据库列表输出上述语句,您可以然后执行。

关于c# - 从多个基础的表中选择信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48708688/

相关文章:

c# - 复制文件Ex "The parameter is invalid"错误

c# - 为什么这段代码在查找 HTML 元素时比其他代码执行速度快 89%?有什么不同?

mysql - 如何在 MySQL 中按关联表中的匹配数对行进行排序?

mysql - GROUP_CONCAT 重复相同的值

sql-server - tsql : how to export query results to . csv?

sql - 通过将一列中的值引用到另一列来汇总记录

c# - 如何在选择或取消选择其父节点时自动选择或取消选择所有子节点?

mysql - 如何在连接和排序依据中更新 sql

使用逗号分隔值的 SQL 查询

以单声道编译的 C# - 检测操作系统