Если все таблицы живут в своей собственной схеме, и в этой схеме нет других объектов, вы можете запретить выбор в самой схеме, используя schema::yourSchemaNameHere
Кроме этого, нет возможности сделать это в одном заявлении. Вы не можете использовать подстановочные знаки и так далее. Но вы можете сделать так, чтобы SQL сгенерировал для вас команды, выполнив некоторые забавные вещи с динамическими c представлениями управления:
select concat('deny select on ', s.name, '.', t.name, ' to [xxxxx\user];')
from sys.tables t
join sys.schemas s on s.schema_id = t.schema_id
where t.name like 'mktg[_]%'
Запустите этот запрос, чтобы создать нужные вам операторы, затем скопируйте вывод обратно в окно запроса и запустите их все вместе.
Добавьте вызовы к quotename()
, если у вас есть какие-то фанковые имена ...
select concat('deny select on ', quotename(s.name), '.', quotename(t.name), ' to [xxxxx\user];')