【发布时间】:2009-10-12 22:25:08
【问题描述】:
我有一个 MS SQL 查询,它通过远程服务器提取数据。我要下拉的数据需要按运行时确定的日期进行过滤。当我像这样运行查询时:
SELECT * FROM SERVER.Database.dbo.RemoteView
WHERE EntryDate > '1/1/2009'
然后远程应用过滤器...但是,我实际上不想使用“2009 年 1 月 1 日”作为日期 - 我希望由用户定义的函数提供日期,如下所示:
SELECT * FROM SERVER.Database.dbo.RemoteView
WHERE EntryDate > dbo.MyCustomCLRDateFunction()
该函数是一个自定义 CLR 标量值函数,它返回一个日期时间......(你可能会问我为什么需要这样做......细节有点复杂,所以相信我 -我必须这样做。)
当我运行此查询时,远程查询不会被远程过滤 - 过滤是在所有数据被拉下后完成的(400,000 行与 100,000 行),它产生了显着的差异。
有没有办法强制查询远程进行过滤?
谢谢!
【问题讨论】:
标签: sql sql-server tsql sql-server-2008 query-optimization