SQL Server позволяет вам определять пользовательские функции (см. , например, эту статью ).Если вы определили функцию low
, то первый код, который вы написали, был бы совершенно корректным SQL-запросом, и вам вообще не нужно было бы выполнять какую-либо предварительную обработку.Объявление будет выглядеть примерно так:
CREATE FUNCTION low(@price)
RETURNS boolean AS
BEGIN
RETURN (@price >= 0) AND (@price <= 50)
END
Если вы хотите разрешить более нечеткий язык, чем просто вызовы функций, тогда это будет еще одной (и значительно более сложной) проблемой.Я не знаю ни о какой библиотеке, которая бы это делала, и реализовать это самостоятельно было бы довольно сложной задачей.(Возможно, вы захотите добавить больше примеров, чтобы мы могли понять, что вы имеете в виду).
Конечно, если вы разрешаете пользователю писать необработанные SQL-запросы, пользователь должен быть тем, кому вы можете доверять (потому чтоможет легко удалить все данные из вашей базы данных).