Как я могу изменить базу данных по умолчанию в SQL Server без использования MS SQL Server Management Studio?

Я удалил базу данных из SQL Server, однако оказалось, что мой логин был настроен на использование удаленной базы данных по умолчанию. Я могу подключиться к SQL Server Management Studio, используя кнопку «Параметры» в диалоговом окне подключения и выбрав «мастер» в качестве базы данных для подключения. Однако всякий раз, когда я пытаюсь что-либо сделать в обозревателе объектов, он пытается подключиться, используя базу данных по умолчанию, и завершается неудачно.

Кто-нибудь знает, как установить базу данных по умолчанию без использования проводника объектов ?

12.12.2008 10:38:32
10 ОТВЕТОВ
РЕШЕНИЕ

Альтернативой sp_defaultdb (которая будет удалена в будущей версии Microsoft SQL Server ) может быть ALTER LOGIN:

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

Примечание: в отличие от sp_defaultdbрешения имена пользователей и баз данных указываются без кавычек. Скобки необходимы, если имя имеет специальные символы (наиболее распространенным примером будет user домена, который является доменом \ username и не будет работать без скобок).

36
11.01.2019 10:16:35
Ну, этот вопрос уже немного устарел. В то время я использовал SQL 2005. Alter Login не был добавлен до версии 2008.
Martin Brown 21.11.2017 15:19:26
@MartinBrown Да, я использую sp_deafultdbцелую вечность. Я был удивлен, что есть «новый» способ.
Marek 21.11.2017 16:49:15
Примечание: одинарные кавычки не нужны вокруг полей my_user_name или database и могут вызвать ошибку. Очевидно, опытные руки, но, возможно, не так для тех, кто делает это время от времени. Квадратные скобки необязательны, если поля представляют непрерывный текст.
iokevins 10.01.2019 19:26:16
Я подключаюсь к базе данных PROD через группу, поэтому у меня нет отдельного логина на сервере, когда я пытаюсь запустить вышеописанное, я получаю «Невозможно изменить логин« DOMAIN \ myuser », потому что он не существует или вы нет разрешения. " еще хуже, что я нахожусь в нескольких группах, потому что каждая из них дает мне определенный доступ к одной из множества БД на сервере. предложения?
matao 1.02.2019 02:58:23
Чтобы узнать, что такое база данных по умолчанию для входа в систему: выберите name, default_database_name из sys.server_principals;
DocOc 18.03.2019 18:50:07

Что вы можете сделать, это установить базу данных по умолчанию, используя системную хранимую процедуру sp_defaultdb. Войдите, как вы сделали, и нажмите кнопку Новый запрос. После этого просто выполните команду sp_defaultdb следующим образом:

Exec sp_defaultdb @loginame='login', @defdb='master' 
215
12.12.2008 10:38:41
Спасибо большое. Работал как талисман (и научил меня диалогу «Опции», чтобы указать db).
penderi 3.09.2010 13:24:22
Этот вопрос поднял вопрос о мете
abel 7.01.2011 14:18:24
Не очень хорошо работает, если вы в группе AD и не хотите менять базу данных по умолчанию для десятков других разработчиков.
DOK 14.11.2011 20:01:12
@ DOK: Но я бы предположил, что если ваш вход в систему сломан таким же образом, как и все другие разработчики. Так что исправить это для всех них, безусловно, было бы хорошо?
Martin Brown 15.11.2011 12:13:39
На этом конкретном экземпляре SQL Server есть десяток разных баз данных. Нам всем нужна другая база данных по умолчанию. Если бы мы создали разные группы пользователей для каждой базы данных, чтобы она могла иметь желаемую базу данных по умолчанию, то нам всем пришлось бы находиться в группе разных групп пользователей, если мы хотим видеть разные базы данных, и тогда мы потеряли бы желаемое значение по умолчанию. Мне бы хотелось, чтобы в Management Studio был способ исправить базу данных по умолчанию, но до сих пор я не нашел подход, который действительно работает.
DOK 15.11.2011 14:35:01

Чтобы сделать это в графическом интерфейсе, вам нужно отредактировать свой логин. Одним из его свойств является база данных по умолчанию, используемая для этого логина. Вы можете найти список входов в систему в разделе «Вход в систему» ​​в разделе «Безопасность». Затем выберите свой логин и щелкните правой кнопкой мыши и выберите Свойства. Измените базу данных по умолчанию, и ваша жизнь станет лучше!

Обратите внимание, что кто-то с sysadmin privs должен иметь возможность войти в систему, чтобы сделать это или выполнить запрос из предыдущего поста.

49
12.12.2008 16:30:50
это работает отлично! просто набрал там "master" db вместо "default".
apprich 4.05.2011 06:48:54
Проблема, с которой я столкнулся, заключалась в том, что я был системным администратором и удалил базу данных, для которой я установил значение по умолчанию, и поэтому даже не смог добраться до этого диалога.
Martin Brown 12.03.2012 11:03:04
@MartinBrown, как бы то ни было, я не убрал ни одной таблицы, и меня все равно привели к вашему вопросу, но я чувствовал себя более комфортно с решением с графическим интерфейсом.
djv 13.06.2014 17:40:29

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

USE [SomeOtherDb]
SELECT 'I am now using a different DB'

Будет работать до тех пор, пока у вас есть разрешение на другую БД

14
23.01.2016 08:39:12

Благодаря этому посту я нашел более простой ответ:

  1. Откройте Sql Server Management Studio

  2. Перейти к объекту Explorer -> Безопасность -> Логины

  3. Щелкните правой кнопкой мыши на логин и выберите свойства

  4. А в окне свойств измените базу данных по умолчанию и нажмите ОК.

40
3.10.2017 17:19:00
Добро пожаловать в StackOverflow и спасибо за ответ. Возможно, вы захотите взглянуть на функции редактора Markdown, чтобы вы могли форматировать блоки кода, списки и т. Д .: stackoverflow.com/editing-help . Я отредактировал ваш ответ, чтобы улучшить форматирование для вас.
Paul Turner 19.02.2013 12:57:47
Суть этого вопроса в том, что описанное вами не работает, если вы удалили базу данных по умолчанию для своей учетной записи. В моем конкретном случае я был единственным администратором в системе, поэтому не мог использовать чужой аккаунт для достижения того же эффекта.
Martin Brown 19.02.2013 18:29:28
@ Mattijs Надеюсь, вы прочитали последнюю строчку вопроса «Кто-нибудь знает, как установить базу данных по умолчанию без использования проводника объектов?». Это то, что вы просили сделать.
Rohit Vipin Mathews 2.08.2013 10:07:27
Возможно, это не ответило на вопрос ОП, но ответило на мой. Это полезный ответ.
CJ Dennis 6.12.2016 23:31:59
Это невозможно в базах данных Azure: /
Squazz 28.09.2017 07:38:31
  1. Нажмите на иконку Изменить соединение
  2. Нажмите Опции <<
  3. Выберите базу данных из выпадающего списка Connect to database
8
23.02.2015 06:44:45
По некоторым причинам это работало для меня в некоторых случаях, а не в других.
levininja 21.03.2017 16:27:50

Если вы не можете войти в SQL Server:

sqlcmd E -S InstanceName d master

Ссылка: https://support.microsoft.com/en-us/kb/307864

1
4.11.2016 13:24:16

Если вы используете проверку подлинности Windows и не знаете пароль для входа в систему в качестве пользователя с помощью имени пользователя и пароля, вы можете сделать это: на экране входа в систему SSMS щелкните параметры в правом нижнем углу, а затем перейдите на вкладку свойств подключения. , Затем вы можете ввести вручную имя другой базы данных, к которой у вас есть доступ, там, где она говорит, что позволит вам подключиться. Затем следуйте другим советам для изменения базы данных по умолчанию

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

-1
23.05.2017 10:53:10

Это может или не может точно ответить на вопрос, но я столкнулся с этой проблемой (и вопросом), когда я изменил свою учетную запись, чтобы иметь новую базу данных, которую я создал как свою «базу данных по умолчанию». Затем я удалил эту базу данных и хотел протестировать сценарий создания с нуля. Я вышел из SSMS и собирался вернуться, но мне было отказано - не удалось войти в базу данных по умолчанию, была ошибка. D'о!

Я сделал следующее: в диалоговом окне входа в систему для SSMS выберите «Параметры», «Свойства подключения», затем введите masterв поле со списком «Подключение к базе данных». Нажмите Подключиться. Получил меня. Оттуда вы можете запустить команду для:

ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO
0
13.08.2018 21:03:20

Я также предпочитаю ALTER LOGINКоманду, как в принятом ответе и описано здесь

Но для любителя GUI

  1. Перейдите на [SERVER INSTANCE] -> Security -> Logins -> [YOUR LOGIN]
  2. Щелкните правой кнопкой мыши [ВАШ ЛОГИН]
  3. Обновите опцию базы данных по умолчанию внизу страницы

Надоело читать !!! просто посмотрите на следующее

введите описание изображения здесь

3
17.07.2019 06:51:58