Если вы решите пойти по этому пути, вы можете сделать следующее:
set showplan_xml on
go
set noexec on
go
select * from sysobjects
go
set noexec off
go
set showplan_xml off
go
Это вернет 3 набора результатов, содержащих один столбец XML.Второй набор результатов представляет собой план запроса для фактического запроса (в данном случае select * from sysobjects
)
Но, как отмечалось в моем комментарии, было бы лучше запретить пользователю иметь права на внесение любых изменений.
Также возможно создать утверждения, которые являются «только» выборками, но также являются довольно вредоносными.Я мог бы легко написать выборку, которая эксклюзивно блокирует каждую таблицу в базе данных и занимает час для ее запуска.