Як видалити елементи "Ім'я сервера" з історії SQL Server Management Studio


173

При спробі підключитися до сервера в Management Studio (конкретно 2008 р.) Є поле, де ви вводите ім'я сервера. Це поле також має випадаючий список, де відображається історія серверів, до яких ви намагалися підключитися.

Я хотів би знати:

  1. Як видалити окремий елемент із цієї історії.
  2. Як видалити елемент з історії входу для кожного імені сервера.

Дякую!

ssms 

3
Дивіться мою відповідь на невеликий інтерфейс, який я написав, щоб це зробити, я трохи запізнився на вечірку, тому моя відповідь зараз знизу.
Марк

1
Неслухняний. Наступного разу використовуйте режим анонімного перегляду, якщо ви збираєтесь запитувати будь-які хиткі бази даних.
Полковник Паніка

Встановіть інструмент "Все", потім знайдіть файл mru.dat та видаліть його
KhaledDev

Відповіді:


138

Станом на SQL Server 2012 вам більше не доведеться переживати проблеми зі видаленням бін-файлу (що спричиняє інші побічні ефекти). Ви повинні мати можливість натиснути клавішу видалення у списку MRU у спадному списку Ім'я сервера у діалоговому вікні Підключення до сервера. Це задокументовано в цьому пункті Connect та цій публікації в блозі .

Зауважте, що якщо у вас є декілька записів для одного імені сервера (наприклад, одна з Windows та одна з SQL Auth), ви не зможете сказати, яку з них ви видалите.


З SSMS 11.0.3128.0 це не працює. Чи зациклювався, оскільки поведінка призвела до поганого UX?
JoeBrockhaus

6
@JoeBrockhaus працює з 11.0.5058.0. Просто відкрийте спадне меню, перемістіть вибір на ім’я, яке ви хочете видалити, і натисніть клавішу Видалити. Якщо у вас є кілька записів, ви можете вибрати запис, щоб ComboBox закрився, переконайтеся, що він є потрібним, а потім натисніть кнопку "Відкрити" на ComboBox і натисніть клавішу delete (видалена в даний момент запис буде видалена).
Trisped

5
Серйозно? Чому я не спробував цього спочатку? Ха-ха. Для всіх, хто цікавиться, я можу підтвердити цю роботу в SSMS 2014.
Jargs

3
Працює і на 2016 рік. Дякую! У мене було неправильне кешоване ім’я користувача, і це виправлено.
Чарл

1
Не впевнений, як мені здається, що "вказує курсор" на вибір цілі клавіші Видалити, але, дякую, це працює.
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. Відкрити SSMS

Цей запит зареєстровано в Microsoft Connect


1
Я відкриваю SqlStudio.bin, файл великий, здається, що можливо містити іншу інформацію, що втратить, окрім історії з'єднання?
Cheung

4
Файл містить налаштування користувача - все, що ви налаштували, буде втрачено. Якщо у вас є деякі навички .Net або Powershell, подивіться на цю відповідь stackoverflow.com/questions/6230159/…
Raj Детальніше

5
У Widnows 7 це під C: \ Users \ <USER> \ AppData \ Roaming \ Microsoft \ Microsoft SQL Server \ 100 Рекомендовані \ Tools \ Shell
Марван

1
Шкода, що я не можу видалити саме групу серверів, не всі мої налаштування користувача.
Johnny_D

2
ПОВЕРНЕНО З ОБЕРЕЖНОЮ. Це насправді не робить те, що просила ОП, а це було вилучити окремі елементи. Це також видаляє всі предмети та інші вподобання.
Аарон Бертран

68

Ось найпростіший спосіб очищення елементів із цього списку.

  1. Відкрийте версію Microsoft Studio SQL Server Management Studio (SSMS), на яку хочете вплинути.
  2. Відкрийте діалогове вікно Підключення до сервера (Файл-> Підключити провідник об’єктів, Провідник об’єктів-> Підключення-> Двигун бази даних тощо).
  3. Клацніть стрілку вниз у списку поля Ім'я сервера .
  4. Наведіть курсор на елементи, які потрібно видалити.
  5. Натисніть клавішу видалення (DEL) на клавіатурі.

там ми йдемо.


4
Працює з SQLServer 2014
jomarmen

1
Працює з SQL Server 2016 Studio Management.
Пуш

2
БУМ! Працює з Studio SQL Server Management Studio 17.9.1
edcincy

2
Якого біса! Я прочитав його і був як ШТО! Як би хто інтуїтивно це здогадався. Я спробував, і це спрацювало. UX не є сильною стороною Microsoft.
DinoSaadeh

1
Свята мамо !! супер легко. ця робота для мене з SQL Server Management Studio 18.5
A3IOU

43

У цьому дубльованому запитанні @arcticdev розмістив код, який позбудеться окремих записів (на відміну від видалення файлу біна). Я завернув його в дуже потворний інтерфейс і розмістив його тут: http://ssmsmru.codeplex.com/


Мені добре працювали для SSMS 2008 R2 (10.50.1777.0), але, щоб переконатися, я перезаписав включені DLL файли з каталогу SSMS. Наскільки я можу сказати, всі інші налаштування залишилися недоторканими. Дякую!
яраїки

@Mark - Дуже дякую Побічна примітка: якщо у вас два сервери з тим самим іменем, навіть якщо вони мають різні типи аутентифікації для входу, а ви видалите один, він видалить їх обох.
Кіт

Я знаю, що це було розроблено для 2008 року, але якщо хтось зацікавився, я спробував цей інструмент у SSMS 2014. Мені довелося змінити конфігураційний файл, щоб він шукав потрібний каталог, і він зміг знайти сервери у файлі bin, але коли я натиснув кнопку "Зберегти", а потім відкрив SSMS, усі мої сервери пішли, замість того, який я видалив. На щастя, я спершу створив резервну копію файлу. :)
Jargs

Бінарні файли відрізняються для 2014 року - я не робив версію 2012/2014, оскільки можливо видалити сервер із SSMS. Якби був інтерес, я міг би спробувати трохи часу створити.
Марк

@Mark Це чудово працювало для MSSQL 2008 R2 Management Studio. Я радий, що продовжував читати коментарі / відповіді і знайшов цю.
HPWD

20

Для студії управління SQL Server 2012 цей файл переміщено. Зараз він знаходиться за адресою:

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 існує документально підтверджений спосіб видалення імені сервера з діалогового вікна "Підключення до сервера". Тепер ми можемо видалити ім’я сервера, вибравши його в діалоговому вікні та натиснувши кнопку DELETE.


підтверджено 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 для редагування вмісту файлів.


Дивіться мою відповідь на простий інтерфейс користувача, який я обернув навколо цього коду.
Марк

6

У командному рядку (Пуск \ Усі програми \ Аксесуари \ Командний рядок):

DEL /S SqlStudio.bin

5

Ось простий спосіб, відкрийте вікно підключення, натисніть спадне ім’я сервера та наведіть курсор на рядок з'єднання, який ви хочете видалити, а потім натисніть кнопку видалити.



3

Для Windows Vista та SQL Server 2005,

Видаліть цей файл або відкрийте його за допомогою Блокнота та очистіть імена серверів, які потрібно очистити з історії

%UserProfile%\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

1

C: \ Користувачі \\ AppData \ Роумінг \ Microsoft \ Microsoft SQL Server \ 100 \ Інструменти \ Shell


0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.