2009-02-11 2 views
0

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

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

... Вы получаете идею.

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

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

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

using some_ridiculously_long_schema_name, another_really_long_schema_location 

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

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

ответ

1

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

0

нет нет. Синонимы - единственный способ.

0

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

+0

Я ожидаю, что это сработает так же, как пространства имен - если нет столкновения, оно работает, и если есть, я получаю сообщение об ошибке, указывающее, что мне нужно полностью квалифицировать имена схем. –

1

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

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

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

Смежные вопросы