我有一个MS SQL查询,该查询通过从远程服务器提取数据。我要提取的数据需要按在运行时确定的日期进行过滤。当我像这样运行查询时:
SELECT * FROM SERVER.Database.dbo.RemoteView WHERE EntryDate > '1/1/2009'
然后可以远程应用该过滤器…但是,我实际上不希望使用“ 1/1/2009”作为日期-我希望该日期由用户定义的函数提供,例如:
SELECT * FROM SERVER.Database.dbo.RemoteView WHERE EntryDate > dbo.MyCustomCLRDateFunction()
该函数是返回日期时间的自定义CLR标量值函数…( 您可能会问为什么我需要这样做…细节有些复杂,所以请相信我-我必须这样做方式。 )
当我运行此查询时,不会对远程查询进行远程过滤-在所有数据被下拉(400,000行与100,000行)之后,将完成过滤,这将产生很大的不同。
有没有一种方法可以强制查询远程进行过滤?
谢谢!
您不能只发送这样的查询,还是必须在select语句中实际调用clr函数?
Declare @datetime datetime Set @datetime = dbo.MyCustomCLRDateFunction() SELECT * FROM SERVER.Database.dbo.RemoteView WHERE EntryDate > @datetime