首先,我永远不会让用户在生产机器上运行他们自己的查询。他们可以整天运行表扫描或其他一些性能杀手。
我们也有类似的情况,我们通常创建自定义存储过程供用户“调用”,并且只允许访问运行“几乎实时”数据的备份服务器。
我们的用户熟悉 excel,所以我创建了一个存储过程,其中包含大量用于过滤/自定义的参数,他们可以使用以下方式轻松调用它:
EXEC YourProcedureName '01/01/2010','12/31/2010','Y',null,1234
我准确记录了参数的作用,从那里开始它们通常很好。
要设置 excel 查询,您需要在用户的 PC 上设置数据源(控制面板 - 数据源 - odbc),这将根据您的 windows 版本略有不同。
在 excel 中,您需要设置“查询”,这只是EXEC
上面的命令。根据 Excel 的版本,它应该类似于:菜单 - 数据 - 导入外部数据 - 新数据库查询。然后选择数据源,connect,跳过table diagram maker,输入上面的SQL。另外,不要试图让一个程序完成所有事情,而是根据他们所做的事情制作不同的程序。
一旦数据在 Excel 工作表上,我们的用户就可以将其拉到其他工作表上并随意操作。
一些用户有点高级并“尝试”编写自己的 SQL,但这很痛苦。我最终调试并修复了他们不正确的查询。此外,一旦您更正了查询,他们总是会修补它并再次破坏它。使用存储过程意味着他们无法更改它,我可以将它与我们的其他过程一起放在源代码存储库中。