Вы понимаете, что такой подход может быть проблематичным, но давайте все равно поработаем с ним.В базе данных каждый объект принадлежит схеме - правильно?Часто вы пишете запросы типа
select col1 ... from orders order by ...;
. Какая таблица на самом деле используется для удовлетворения этого запроса?Вы, вероятно, узнали о схеме dbo, потому что она существует в каждой базе данных.Если вы ссылаетесь на таблицу только по имени, ядро базы данных должно найти фактическую таблицу, которая будет использоваться.Сначала он будет смотреть в текущей схеме по умолчанию пользователя, чтобы увидеть, существует ли эта таблица.Если это так, то эта таблица используется.Если нет, движок будет искать в таблице dbo эту таблицу.
Зная это, вы можете написать свои запросы, чтобы воспользоваться этой логикой.Обратите внимание, «может» - это не рекомендация, но она будет соответствовать вашей цели.Если вы пишете свои запросы, используя имена из одной части, все эти имена будут относиться к схеме по умолчанию текущего пользователя во время выполнения.
Итак, предположим, что пользователь X имеет схему по умолчанию Z. Ваше приложение пытается выполнить запрос "выбрать * из порядка заказов по orderDate desc;".Таблица Z.orders будет использоваться в качестве источника, если он присутствует.Если эта таблица не существует в схеме Z, механизм будет использовать dbo.Orders.И если эта таблица не существует, будет сгенерирована ошибка.
Так это работает с любой платформой, которую вы используете в своем приложении?Не знаюОбратите внимание, что вы пишете заявку.Все это вы можете сделать в своем собственном письменном коде.И если вы можете динамически добавлять имя схемы к своим запросам, вы также можете делать все что угодно, чтобы «настроить» результаты по любой причине.Все просто - это всего лишь код, так что делайте что хотите.