Как удалить элементы «Имя сервера» из истории SQL Server Management Studio

173

При попытке подключиться к серверу в Management Studio (в частности, в 2008 году) появляется поле, в котором вы вводите имя сервера. В этом поле также есть раскрывающийся список, в котором отображается история серверов, к которым вы пытались подключиться.

Я бы хотел знать:

  1. Как удалить отдельный элемент из этой истории.
  2. Как удалить элемент из истории полей Login для каждого имени Сервера.

Спасибо!


источник
3
Посмотрите мой ответ для небольшого пользовательского интерфейса, который я написал, чтобы сделать это, я немного опоздал на вечеринку, так что мой ответ в настоящее время далеко внизу.
Марк
1
Непослушный. В следующий раз используйте режим инкогнито, если вы собираетесь запрашивать какие-то хитрые базы данных.
полковник Паник
Установите инструмент Все, затем найдите файл mru.dat и удалите его
KhaledDev

Ответы:

138

Начиная с SQL Server 2012 вам больше не нужно проходить через процедуру удаления файла bin (что вызывает другие побочные эффекты). Вы должны быть в состоянии нажать клавишу удаления в списке MRU раскрывающегося списка «Имя сервера» в диалоговом окне «Подключение к серверу». Это задокументировано в этом элементе Connect и в этом блоге .

Обратите внимание, что если у вас есть несколько записей для одного имени сервера (например, один для Windows и один для SQL Auth), вы не сможете определить, какой из них вы удаляете.

Аарон Бертран
источник
С SSMS 11.0.3128.0 это не работает. Неужели это стало причиной того, что поведение привело к плохому UX?
JoeBrockhaus
6
@JoeBrockhaus Работает с 11.0.5058.0. Просто откройте выпадающий список, переместите выделение на имя, которое вы хотите удалить, и нажмите клавишу Delete. Если у вас есть несколько записей, вы можете выбрать запись, чтобы ComboBox закрылся, убедитесь, что это именно то, что вам нужно, затем нажмите кнопку «Открыть» в ComboBox и нажмите «Удалить» (текущая выбранная запись будет удалена).
Trisped
5
Шутки в сторону? Почему я не попробовал это первым? Ха - ха. Для тех, кто заинтересован, я могу подтвердить, что это работает в
SSMS
3
Работает и в 2016 году. Спасибо! У меня было неверное кэшированное имя пользователя, и это исправило это.
Чарл
1
Не уверен, что я чувствую по поводу "наведения курсора", чтобы выбрать цель клавиши Delete, но спасибо, это работает.
linhartr22
69

Для SQL 2005 удалите файл:

C:\Documents and Settings\<USER>\Application Data\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

Для SQL 2008 местоположение файла, формат и имя изменились:

C:\Documents and Settings\<USER>\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

Как очистить список:

  1. Закройте все экземпляры SSMS
  2. Удалить / переименовать файл
  3. Open SSMS

Этот запрос зарегистрирован в Microsoft Connect

Радж Море
источник
1
Я открываю SqlStudio.bin, файл большой, кажется возможным содержать другую информацию, что потеряет кроме истории подключений?
Чеунг
4
Файл содержит настройки пользователя - все, что вы настроили, будет потеряно. Если у вас есть навыки .Net или Powershell, посмотрите на этот ответ stackoverflow.com/questions/6230159/…
Raj More
5
В widnows 7 он находится в C: \ Users \ <USER> \ AppData \ Roaming \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell
Marwan
1
Жаль, что я не могу удалить точно группу серверов, не все мои пользовательские настройки.
Johnny_D
2
ДЕЙСТВОВАТЬ С ОСТОРОЖНОСТЬЮ. Это на самом деле не делает то, что просил ОП, а именно: удалять отдельные предметы. Это уничтожает все предметы и другие предпочтения.
Аарон Бертран
68

Вот самый простой способ удалить элементы из этого списка.

  1. Откройте версию Microsoft SQL Server Management Studio (SSMS), на которую вы хотите повлиять.
  2. Откройте диалоговое окно « Подключение к серверу » («Файл» -> «Подключить обозреватель объектов», «Обозреватель объектов» -> «Подключиться» -> «Database Engine» и т. Д.).
  3. Нажмите на стрелку вниз в раскрывающемся списке в поле «Имя сервера» .
  4. Наведите указатель мыши на элементы, которые вы хотите удалить.
  5. Нажмите клавишу удаления (DEL) на клавиатуре.

там мы идем.

Hardik
источник
4
Работает с SQLServer 2014
jomarmen
1
Работает с SQL Server 2016 Management Studio.
Пуш
2
БУМ! Работает с SQL Server Management Studio 17.9.1
edcincy
2
Какого черта! Я прочитал это и было похоже на то, что! Как бы кто-нибудь интуитивно догадался об этом. Я пытался, и это сработало. UX не является сильной стороной Microsoft.
DinoSaadeh
1
Святая мама !! супер просто. это работа для меня с SQL Server Management Studio 18.5
A3IOU
43

В ответ на этот повторяющийся вопрос @arcticdev опубликовал некоторый код, который избавит от отдельных записей (в отличие от всех записей, удаляющих файл bin). Я завернул его в очень уродливый интерфейс и выложил здесь: http://ssmsmru.codeplex.com/

отметка
источник
Я работал хорошо для SSMS 2008 R2 (10.50.1777.0), но, чтобы убедиться, что я переписал включенные библиотеки DLL из каталога SSMS. Насколько я могу судить, все остальные настройки остались без изменений. Спасибо!
jaraics
@Mark - Большое спасибо. Примечание: если у вас есть два сервера с одинаковым именем, даже если они имеют разные типы аутентификации при входе, и вы удалите один, он удалит их оба.
Кит
Я знаю, что это было построено в 2008 году, но на случай, если кому-то будет интересно, я попробовал этот инструмент в SSMS 2014. Мне пришлось изменить файл конфигурации, чтобы посмотреть в нужном каталоге, и он смог найти серверы в файле bin, но когда я нажал «Сохранить», а затем открыл SSMS, все мои серверы исчезли, а не только тот, который я удалил. К счастью, я сначала сделал резервную копию своего бинарного файла. :)
Jargs
Двоичные файлы отличаются для 2014 года - я не сделал версию 2012/2014, поскольку можно удалить сервер из SSMS. Если бы был интерес, я мог бы попытаться найти время для создания.
Отметить
@Mark Это отлично работает для MSSQL 2008 R2 Management Studio. Я рад, что продолжал читать комментарии / ответы и нашел это.
HPWD
20

Для SQL Server 2012 Management Studio этот файл перемещен. Сейчас он находится по адресу:

C:\Users\<username>\AppData\Roaming\Microsoft\
    SQL Server Management Studio\11.0\SqlStudio.bin
Дамиан Пауэлл
источник
6
А для SSMS 2014 это сейчас, c:\Users\<username>\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.binно я думаю, это было очевидно.
Чарли
быстрее достичь с помощью:%appdata%\Roaming\Microsoft\ SQL Server Management Studio\11.0\SqlStudio.bin
Патрик Хонорез
15

В стандарте Windows Server 2008 с SQL Express 2008 файл SqlStudio.bin находится здесь:

%UserProfile%\Microsoft\Microsoft SQL Server\100\Tools\Shell\
Ричард Марскелл - Дракир
источник
Это не помогает Файл будет воссоздан с теми же пользователями.
Нима
2
@nima вам может потребоваться закрыть SSMS перед удалением файла. Также см. Мой ответ для способа удаления отдельных элементов.
Марк
11

Удалить файл по указанному выше пути: (перед удалением закройте SSMS)

Путь к файлу для пользователей SQL Server 2005 ,

C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

Путь к файлу для пользователей SQL Server 2008 ,

Примечание. Имя формата было изменено.

C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

Путь к файлу для пользователей стандарта Server 2008 / SQL Express 2008

C:\Documents and Settings\%USERNAME%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

Путь к файлу для пользователей SQL Server 2012 ,

C:\Users\%USERNAME%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin

Путь к файлу для пользователей SQL Server 2014 ,

C:\Users\%USERNAME%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin

Примечание. В SSMS 2012 ( Version 10.50.1600.1 OR Above) теперь вы можете удалить имя сервера, выбрав его в раскрывающемся списке и нажав DELETE.

Педрам
источник
9

В SSMS 2012 есть документированный способ удаления имени сервера из диалогового окна «Подключение к серверу». Теперь мы можем удалить имя сервера, выбрав его в диалоговом окне и нажав УДАЛИТЬ.

Чинтак Чхапия
источник
проверено с SSMS 11.0.3128.0 это не работает. Вероятно, получил отказ, потому что это скрывает нативное поведение удаления. (В сообщении MSDN говорится, что предыдущий текст элемента останется в поле после удаления, что является плохим решением UX. Что если я просто хотел удалить текст, а не сохраненную запись?)
JoeBrockhaus
В моем случае у меня есть версия 11.0.3000.0, и она отлично работает. Просто нужно щелкнуть раскрывающийся список, выбрать сервер, а затем нажать «Удалить». Да, это немного сбивает с толку.
Чинтак Чхапиа
1
где вы нажимаете "удалить"? В моем интерфейсе нет кнопки удаления. Тем не менее, даже простое нажатие клавиши удаления просто удаляет текст в ComboBox, и запись остается в раскрывающемся списке.
JoeBrockhaus
Извините за мою ошибку, вместо "нажмите удалить", я должен был написать "нажмите клавишу удаления". Кнопки для удаления нет, нужно нажать клавишу Delete с клавиатуры.
Чинтак Чхапиа
7

Файл SqlStudio.bin фактически содержит двоичные сериализованные данные типа «Microsoft.SqlServer.Management.UserSettings.SqlStudio».

Используя класс BinaryFormatter, вы можете написать простое приложение .NET для редактирования содержимого файла.

Tomas
источник
Смотрите мой ответ для простого пользовательского интерфейса, который я обернул вокруг этого кода.
Марк
6

Из командной строки (Пуск \ Все программы \ Стандартные \ Командная строка):

DEL /S SqlStudio.bin
ggponti
источник
5

Вот простой способ: откройте окно подключения, щелкните раскрывающийся список «Имя сервера» и наведите указатель мыши на строку подключения, которую хотите удалить, затем нажмите «Удалить».

Varus
источник
3

Для Windows Vista и SQL Server 2005,

Удалите этот файл или откройте его с помощью Блокнота и удалите имена серверов, которые вы хотите Очистить от истории

%UserProfile%\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat
Мидо-Египет
источник
1

C: \ Users \\ AppData \ Roaming \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell

Питер
источник
0

Вместо удаления или переименования этого файла:
1) Закройте SQL Management Studio
2) Найдите соответствующий файл (см. Сообщение или ответы выше)
3) Откройте .bin в текстовом / шестнадцатеричном редакторе, таком как NotePad ++
4) Найдите имя одного из серверы и определите номер строки
5) Сделайте копию файла .bin / .dat
6) Удалите эту строку, убедитесь, что вы удалили всю строку, возможно, если у вас будет много строк, которые можно обернуть.
7) Откройте SQL Management Studio, ваш раскрывающийся список будет пустым

Пит
источник