从硬盘执行T-sql查询

时间:2018-04-30 09:18:25

标签: sql sql-server tsql

我将T-SQL查询存储在硬盘驱动器上:I:\queries\query1.sqlI:\queries\query2.sql

我的工作方式通常是从驱动器执行查询,然后将结果复制到Excel,然后我就可以了。

我的问题是,query1.sql已经很长了,现在我希望通过获得query2.sql的结果来扩展它,并加入query1.sql的结果。< / p>

我可以做的是将query2.sql的代码附加到query1.sql。但随后查询变得非常冗长且难以维护。

我想做这样的事情:

SELECT * FROM ("Result of I:\queries\query1.sql") q1 
LEFT JOIN ("Result of I:\queries\query2.sql") q2 ON q1.ID=q2.ID

有没有办法编写查询或存储过程,它将再次存储在驱动器上执行此操作?

2 个答案:

答案 0 :(得分:3)

基本上,当 能够在数据库中存储内容时,您需要向DBA询问数据库。这可以在存储数据的同一系统上。或者,它可能在链接系统上。天哪,你可以在本地运行SQL Server并在那里存储信息和数据。

然后,您存储在文件中的查询应该是数据库中的视图。然后,您可以运行查询并在本地存储和组合结果。

您实际上是使用文本文件和数据文件重新创建数据库功能 - 当SQL Server已经支持此功能时需要付出很多努力。

答案 1 :(得分:1)

要扩展Gordon的评论(+1),为什么您是否在驱动器上运行脚本?我所知道的大多数DBA都会因为执行无法控制/排除/查看源代码控制的代码而对其造成身体伤害,从而带来了大量的安全性和可支持性问题。

更好地将此代码存储在存储过程中,该存储过程将具有已保存的查询执行计划,可以使用各种DMV进行跟踪,并具有分配给它的权限,然后您的外部Excel文档可以只设置连接并执行SP。