我正在做一些事情,要求我运行sql查询以从路径读取文本文件,但根据我的条件/要求,它仅显示很少的内容。我已经读过关于使用ROWSET / BULK复制的信息,但是它复制了整个文件,但是我只需要文件中的某些数据。
例如:
Line 1 - Hello, Good Morning. Line 2 - Have a great day ahead. Line 3 - Phone Number : 1112223333 and so on.
因此,如果我读取此文件并将条件设置为“ 1112223333”,则它应仅显示由“ 1112223333”组成的行。
注意:它应显示匹配的案例/条件的整行
是否可以使用sql查询来实现?如果是这样,那么请帮助我。 预先感谢。
答案 0 :(得分:0)
很遗憾,您尝试执行的操作不适用于ROWSET
。无法在读取时应用过滤器。您被困在整个表中阅读。您当然可以读入临时表,然后删除行。这将为您提供理想的最终结果,但是您必须在读取整个表时大获成功。
您也许可以生成脚本来过滤文件服务器端并使用xp_cmdshell
来触发它,但是您仍然需要将性能降低到某个水平。尽管这将减轻SQL Server的负载,但您只是将处理推到了其他地方,并且仍然必须等待处理发生,然后才能读取文件。如果文件在单独的服务器上并且网络流量是一个问题,则可能值得做。如果文件位于同一服务器上,除非SQL完全陷入瘫痪,否则我看不出这样做的优势。