Соединение SQL Server Management Studio по умолчанию установлено как «master» при выборе объекта, специфичного для базы данных. - PullRequest
23 голосов
/ 16 августа 2011

В SQL Server 2008 R2 Management Studio, если я щелкну правой кнопкой мыши по объекту в определенной базе данных и выберу «Выбрать 1000 верхних строк», соединение с базой данных для окна запроса всегда открывается на «master», пока таблицаимя полностью квалифицировано как [база данных]. [dbo]. [таблица].Это делает невозможным включение и настройку этого запроса и вставку объединений и т. Д. В оператор без полной квалификации всего того, что я добавляю, или добавления оператора USE, или выбора базы данных из раскрывающегося меню.

Существует ли параметр или что-то, что делает окна запросов открытыми при подключении к базе данных базы данных браузера выбранного объекта, а не при подключении к «master», и не позволяет полностью квалифицировать базу данных объекта в тексте запроса?Я понимаю, что могу зарегистрировать свое соединение SQL по умолчанию в своей базе данных, но мы фактически просматриваем несколько новых баз данных каждую неделю - через месяц я коснусь десятков баз данных - так что будет трудно управлять несколькими регистрациями баз данных,Я бы предпочел, чтобы SSMS просто подключался к указанной базе данных.Возможно и просто?

Ответы [ 4 ]

16 голосов
/ 08 марта 2012

Если вы входите через Win Auth, находитесь в группе, используете SA или какой-либо другой идентификатор пользователя или находитесь в ситуации, когда изменение вашего логина не является действительно решением, И если все, что вы хотите сделать, по умолчанию -база данных в редакторе запросов:

  • В существующем открытом редакторе запросов щелкните правой кнопкой мыши, выберите Соединение, Изменить соединение.

  • НажмитеКнопка параметров для расширения параметров.

  • На вкладке Свойства подключения выберите базу данных, к которой вы хотите подключиться.

SSMS запомнит вашувыбор для этого сервера.Возможно, вам придется повторить для других серверов, но это исправит наличие базы данных по умолчанию, отличной от master.

11 голосов
/ 16 августа 2011

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

Вместо использования SELECT TOP 1000 (что, помимо того, что не помещает вас в правильный контекст базы данных, также ставит TOP в том смысле, что я предполагаю, что вы также просто собираетесь удалить), вы должны щелкнуть правой кнопкой мыши выберите таблицу Script Table as> SELECT to> New Query Window. Это помещает контекст в нужную БД, добавляет команду USE, не имеет TOP и не использует префикс базы данных для имени таблицы.

EDIT

FWIW, я склонен с вами согласиться, и я ненавижу несогласованное поведение между функциями, которые должны быть похожими / идентичными. Итак, я подал это предложение - пожалуйста, проголосуйте!

http://connect.microsoft.com/SQLServer/feedback/details/684247/

6 голосов
/ 16 августа 2011

Если вы хотите, чтобы окно запроса подключалось к какой-либо базе данных по умолчанию, в SSMS перейдите в Security -> Logins, выберите имя входа, которое вы используете для подключения к этому серверу, и зафиксируйте окно свойств. На странице 'general' измените базу данных по умолчанию с 'master' на базу данных, к которой вы хотите подключиться.

2 голосов
/ 16 августа 2011

Вы можете просто поставить USE [database name] в верхней части окна запроса перед выполнением запроса.Вам не нужно полностью указывать имена баз данных, если вы делаете это.Если вы генерируете какие-либо скрипты и управляете их версиями, то в любом случае это хорошая практика.Это, по крайней мере, предотвращает ошибочное выполнение сценария для неверной базы данных (например, создание хранимой процедуры).

USE MySpecialDatabase
GO

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