В SQL Server 2008 у меня есть приложение, в котором пользователи могут выполнять запросы к базе данных.Я хочу помешать им выполнить запрос, который вернет миллионы результатов и ресурсы налоговой системы.Текущее решение заключается в переносе любого запроса, введенного в функцию count (*) следующим образом:
Select count(*) as COUNT
from (SELECT SOMETHING FROM SOMETABLE) as TMPCOUNT0;
Работает нормально, пока пользователь не попытается запустить COUNT(*)
самостоятельно.
Select count(*) as COUNT
from (SELECT COUNT(*) FROM SOMETABLE) as TMPCOUNT0;
--(should return 1)
Однако SQL Server не нравится, что мой внутренний столбец COUNT(*)
не имеет имени в моей производной таблице и выдает следующие ошибки:
Не указано имя столбца для столбца 1 в TMPCOUNT0'.
Я знаю, что мог бы исправить это, если бы выполнял запрос, указав имя для внутреннего счета, но, поскольку конечные пользователи не знают об этом, я надеюсь найтиболее элегантное решение.
Есть идеи?