У меня есть запрос MS SQL, который извлекает данные с удаленного сервера. Данные, которые я вытаскиваю, должны быть отфильтрованы по дате, которая определяется во время выполнения. Когда я запускаю запрос следующим образом:
SELECT * FROM SERVER.Database.dbo.RemoteView
WHERE EntryDate > '1/1/2009'
затем фильтр применяется удаленно... Однако на самом деле я не хочу использовать «01.01.2009» в качестве даты — я хочу, чтобы дата была предоставлена определяемой пользователем функцией, например:
SELECT * FROM SERVER.Database.dbo.RemoteView
WHERE EntryDate > dbo.MyCustomCLRDateFunction()
где функция является пользовательской функцией CLR со скалярным значением, которая возвращает дату и время... (Вы можете спросить, зачем мне это нужно... детали немного сложны, так что просто поверьте мне - я должен сделайте это так.)
Когда я запускаю этот запрос, удаленный запрос НЕ фильтруется удаленно — фильтрация выполняется после извлечения всех данных (400 000 строк против 100 000 строк), и это имеет существенное значение.
Есть ли способ заставить запрос выполнять фильтрацию удаленно?
Спасибо!