使用过滤表和列查询整个数据库,然后加入等

时间:2015-12-23 05:36:04

标签: c# asp.net sql-server report

背景

我的后端在SQL Server 2012中有一个数据库,它有大约20个表(可能会及时增加),并且每个表最初可能会增加大约100 - 1000行。

现在,我的一位同事开发了一个使用该数据库的Web应用程序,让客户端进行CRUD和通常的业务逻辑。

问题

我的任务是为这个Web应用程序创建一个报告页面,我将要做的是让客户端能够从所有表中导出SQL中所有深层嵌套对象的所有数据,或者只导出所有列或者只有少数......以excel,pdf和其他格式在未来。我可能还需要在我的业务逻辑中查询第三方以收集更多信息(暂时脱离上下文)。

我可以做些什么来实现上述目标?

我所知道的

我无法想到任何 高效且可扩展的 解决方案,因为它将涉及100个列和20个表。我只能想到为我可能需要的内容添加100个视图,但它也不会发出声音。

我应该查看BI或SQL报告,还是应该在使用ORM之类的代码中完成?或者是否已经有任何开源代码用于 通用操作 我完全感到困惑。

请注意我问的是使用什么而不是如何使用。希望我没有冒犯任何人。

1 个答案:

答案 0 :(得分:-1)

如果您不关心客户端是否可以访问您的所有数据库对象名称,您可以自己编写一些内容而不需要太多努力。如果要创建页面,可以查询系统视图以获取所有表和列名称的列表,以填充某种过滤(下拉列表,列表框等)。

您可以获得所有表格的列表:

latestActivity

您可以获得每个表的所有列的列表:

select object_id, name from sys.tables

object_id是视图之间的公共密钥。

如果您打算通过SQL导出,那么您可以根据导出要求编写一些动态SQL。