#sql-server #ssms #hotkeys
#sql-сервер #ssms #горячие клавиши
Вопрос:
Мне нужно написать несколько запросов в SQL Server Management Studio, большинство из которых, однако, находятся не в моей текущей базе данных, а в удаленной. Итак, любой простой запрос select выглядит следующим образом:
выберите * из [top_database].subdatabase.subsubdatabase.actualtable
где все, что я хочу сделать, это написать
выберите * из actualtable
Есть ли какой-либо способ настроить SQL Server так, чтобы я нажимал какую-либо горячую клавишу или разворачивал очень минимальный текст, который затем выдавал мне
[top_database].база данных subsubdatabase.subsubdatabase.
сразу после моего курсора?
Спасибо
Ответ №1:
Вы на самом деле имеете в виду…
[сервер компоновщика].[база данных].[схема].[объект]?
Если да, то, насколько мне известно, вы должны указать все части этого. Intelli-sense существует в более поздних версиях management Studio, но я не знаю, может ли он расширять имена, существующие на связанном сервере.
(Я полагаю, это связано с тем, что серверу SQL, а не клиенту management Studio, потребуется открыть соединение со связанным сервером, чтобы проверить эту информацию.)
Комментарии:
1. 1 — Лучший вариант — поместить их в блокнот на другом мониторе и
CTRL C
CTRL V
2. Да, вы правы в своем первом замечании. Кроме того, я не обсуждаю, требуется ли этот синтаксис явно; я знаю, что это так, иначе может возникнуть конфликт имен между различными серверами. Однако все, что я ищу, это простой способ, с точки зрения редактирования, просто добавить горячую клавишу, когда SQL Server находится в фокусе, чтобы я мог вставить сервер компоновщика]. [база данных]. [схема]. автоматически, и не нужно вводить его каждый раз.
3. Я отметил это как избранное, поскольку мне интересно, есть ли какие-либо полезные ответы. Но, насколько я знаю, вы застряли с копированием и вставкой.
4. Прошу прощения, если мои слова прозвучали покровительственно! Вопрос только в том, чтобы установить, имели ли вы в виду связанный сервер, поскольку это был бы момент, когда клиент Management Studio столкнулся бы с другим ограничивающим фактором.
Ответ №2:
Вы можете создать синоним для ваших удаленных таблиц и использовать этот синоним при написании запросов. На вашем сервере может быть база данных со всеми синонимами, которые вы, вероятно, будете использовать. При первом запросе таблицы больше работы, но в следующий раз меньше.
create synonym TableName for LinkedServerName.DataBaseName.SchemaName.TableName
Затем вы можете сделать
select *
from TableName
На самом деле это не ответ на ваш вопрос, но он может быть полезен.
Комментарии:
1. Спасибо, на самом деле это хорошее решение моей проблемы. Однако, поскольку у меня нет разрешения на создание синонимов в моей текущей базе данных, я все еще ищу решение на уровне редактора. Я попрошу разрешения как можно скорее.