SQL эквивалент «использования» для схем? - PullRequest
0 голосов
/ 11 февраля 2009

Я работаю с БД SQL Server, таблицы которой распределены по нескольким схемам (не моя идея), поэтому запросы в итоге выглядят так:

select col1, col2
from some_ridiculously_long_schema_name.table1 t1
inner join
    another_really_long_schema_location.table2 t2
    on...

... вы поняли.

Это небольшое неудобство, когда я помещаю запросы в хранимые процессы и т. Д., Но когда я выполняю запросы adhoc, это становится настоящей болью.

Есть ли способ, которым я мог бы "включить" все схемы, в которых я заинтересован, и иметь их автоматически адресуемые? (LINQPad делает это).

Я бы хотел иметь возможность указать что-то вроде этого:

using some_ridiculously_long_schema_name, another_really_long_schema_location

... а затем отправьте запрос, включив эти схемы в мое адресное пространство.

Если ничего подобного не существует, я рассмотрю синонимы, но я бы предпочел сделать это, не добавляя артефакты в БД.

Ответы [ 4 ]

1 голос
/ 11 февраля 2009

Я знаю, что вы чувствуете, если вам нужно сохранить схемы (например, если у вас одинаковые имена таблиц в каждой) и вы постоянно пишете запросы, объединяющие схемы, лучшее предложение, которое я могу предложить, - сократить ваши имена схем.

Низкие технологии, а не то, что вы хотели услышать, я уверен.

Синонимы, как предложено выше, работают только на уровне объекта (насколько я знаю, у вас не может быть синонима для всей схемы), поэтому вам потребуется синоним для каждой таблицы, представления, хранимой процедуры, функции и т. Д. хотел использовать извне схему по умолчанию.

1 голос
/ 11 февраля 2009

Red-Gate продает инструмент SQL, который добавляет intellisense к студии управления сервером. Никогда не пробовал, но это может помочь сократить количество нажатий клавиш: http://www.red -gate.com / products / SQL_Prompt / index.htm

0 голосов
/ 11 февраля 2009

Это не сработает, потому что если у вас есть Table1 в обеих схемах, то как вы узнаете, какую схему вы хотите?

0 голосов
/ 11 февраля 2009

нет, это не так. синонимы - единственный способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...