При подключении к SQL Server Management Studio по умолчанию используется "мастер" при выборе объекта, специфичного для базы данных
В SQL Server 2008 R2 Management Studio, если я щелкнул правой кнопкой мыши по объекту внутри конкретной базы данных и выбрал "Выбрать более 1000 строк..", соединение с базой данных для окна запроса всегда открывается на "master", а таблица имя полностью определено как [база данных]. [dbo]. [table]. Это делает невозможным вхождение и настройку этого запроса, вставку объединений и т.д. В инструкцию без полной проверки всего, что я добавляю, или добавления оператора USE или выбора базы данных из выпадающего меню.
Есть ли параметр или что-то, что сделает окна запросов открытыми с подключением базы данных к базе данных выбранного объекта браузера, а не подключиться к "master" и не полностью квалифицировать базу данных объектов в тексте запроса? Я понимаю, что я могу зарегистрировать свое SQL-соединение по умолчанию для своей базы данных, но мы действительно просматриваем несколько новых баз данных каждую неделю - за определенный месяц я затрону несколько десятков баз данных, поэтому было бы сложно управлять несколькими регистрациями баз данных, Я бы предпочел, чтобы SSMS просто подключился к указанной базе данных. Возможно и понятно?
Ответы
Ответ 1
Нет такой настройки для команды SELECT TOP
, но вы можете это сделать, изменив базу данных по умолчанию для своего входа. Это утомительно, если вы часто это делаете для разных баз данных (так же, как изменение регистраций, как я уже заметил, вы уже указали).
Вместо использования SELECT TOP 1000
(который помимо того, что вы не попали в нужный контекст базы данных, также помещает TOP
, в котором я предполагаю, что вы просто удалите его), вы должны щелкнуть правой кнопкой мыши и выберите Script Table as
> SELECT to
> New Query Window
. Это помещает контекст в правый БД, добавляет команду USE
, не имеет TOP
и не префикс базы данных для имени таблицы.
ИЗМЕНИТЬ
FWIW, я склонен согласиться с вами, и я ненавижу противоречивое поведение между функциональностью, которая должна быть одинаковой/идентичной. Итак, я подал это предложение - пожалуйста, голосуйте!
http://connect.microsoft.com/SQLServer/feedback/details/684247/
Ответ 2
Если вы входите через Win Auth, находитесь в группе, используете SA или какой-либо другой идентификатор пользователя или находитесь в ситуации, когда изменение вашего логина на самом деле не является решением, И если все, что вы хотите сделать, база данных в редакторе запросов:
-
В существующем открытом редакторе запросов щелкните правой кнопкой мыши, выберите Connection, Change Connection.
-
Нажмите кнопку "Параметры", чтобы развернуть параметры.
-
На вкладке Свойства подключения выберите базу данных, к которой вы хотите подключиться.
SSMS запомнит ваш выбор для этого сервера. Возможно, вам придется повторить для других серверов, но он исправляет наличие базы данных по умолчанию, отличной от основной.
Ответ 3
Если вы хотите, чтобы окно запроса подключалось к какой-либо базе данных по умолчанию, в SSMS перейдите в Security → Logins, выберите логин, который вы используете для подключения к этому серверу, и заходите в окно свойств. В разделе "Общие" измените базу данных по умолчанию из "master" в базу данных, которую вы хотите подключить.
Ответ 4
Вы можете просто положить USE [database name]
в верхней части окна запроса до выполнения запроса. Если вы это сделаете, вам не нужно полностью квалифицировать имена баз данных. Если вы создаете какие-либо скрипты и контролируете их версию, это хорошая практика, чтобы в любом случае поставить верх. Это, по крайней мере, предотвращает ошибочное выполнение script неправильной базы данных (например, создание хранимой процедуры).
USE MySpecialDatabase
GO
SELECT * FROM MySpecialTable