Почему сделал Studio управления SQL Server, 2 008 переключателей командной строки прекращают работать?

Я всегда полагался в большой степени на ярлыки Windows на SSMS, которые включают переключатели командной строки, разрешающие мне быстро открывать определенную базу данных по определенному серверу. Например,

Ssms.exe -S 123.123.123.123 -U sa -P goodpassword -d DbName

или

Ssms.exe -S . -E -d DbName

Они внезапно прекратили работать. Я получаю эту ошибку от SSMS:

Failed to create new SQL Server script.
Object reference not set to an instance of an object. (AppIDPackage)
Program Location: at Microsoft.SqlServer.Management.UI.VSIntegration.
AppIDPackage.AppIDPackage.OpenConnectionDialogWithGlobalConnectionInfo()

Я могу все еще запустить SSMS без переключателей командной строки и затем вручную установить соединения. Некоторые переключатели командной строки все еще работают, например

ssms.exe -nosplash

хорошо работает.

Я получаю ту же ошибку с любой комбинацией-S,-E, и-d переключатели командной строки. Не имеет значения, если я указываю на допустимый сервер или базу данных или нет, или если мои данные для входа в систему хороши или нет. Я могу указать на более старую версию SSMS, и это хорошо работает, но не версия 2008 года.

Это сообщение на форумах MSDN - все, что я нашел онлайн, но MS не был очень полезен на этом потоке.

Какие-либо идеи, как я мог бы начать фиксировать это? Я работаю с большим количеством различных баз данных по различным серверам, и я действительно полагаюсь на эти ярлыки.

10
задан Ilmari Karonen 13 March 2016 в 18:33
поделиться

3 ответа

Я бросил указанную DLL в отражатель, и он вернул мне код, приведенный в конце этого сообщения, к сожалению, в коде нет ничего очевидного, что позволяет легко понять, почему он перестает работать для вас (не Было бы неплохо, если бы Microsoft поставляла символы отладки вместе со всем, что они создают, написанным против CLR?).

Есть несколько мест, где код заставляет меня задуматься, может ли у вас быть поврежденный список «недавно использованных серверов» или что-то подобное. Возможно, вы могли бы попробовать выполнить шаги, перечисленные в этом вопросе , чтобы очистить их и посмотрите, поможет ли это.

private void OpenConnectionDialogWithGlobalConnectionInfo()
{
    if ((ServiceCache.GlobalConnectionInfo != null) && (ServiceCache.GlobalConnectionInfo.Count != 0))
    {
        try
        {
            using (ConnectionDialog dialog = new ShellConnectionDialog())
            {
                IDbConnection connection;
                dialog.ImportRegisteredServersOnFirstLaunch = true;
                dialog.AddServer(new SqlServerType());
                UIConnectionInfo connectInfo = ServiceCache.GlobalConnectionInfo[0].Copy();
                if (dialog.TryToConnect(this.PopupOwner, ref connectInfo, out connection) == DialogResult.OK)
                {
                    this.ScriptFactory.CreateNewBlankScript(ScriptType.Sql, connectInfo, connection);
                }
            }
        }
        catch (Exception exception)
        {
            ExceptionMessageBox box = new ExceptionMessageBox(new ApplicationException(SRError.FailedToCreateNewSqlScript, exception));
            box.Caption = SRError.MessageBoxCaption;
            box.Show(this.PopupOwner);
        }
    }
    ServiceCache.GlobalConnectionInfo = null;
}
7
ответ дан 4 December 2019 в 02:25
поделиться

Прекрасно работает следующим образом:

sqlwb.exe -S . -E -d dbName
0
ответ дан 4 December 2019 в 02:25
поделиться

Я использую SSMS2008 против базы данных SQL2005, и командная строка ssms здесь работает нормально.

Вот информация о версии, выдаваемая диалогом SSMS About:

Microsoft SQL Server Management Studio              10.0.1600.22 ((SQL_PreRelease).080709-1414 )
Microsoft Data Access Components (MDAC)             6.0.6001.18000 (longhorn_rtm.080118-1840)
Microsoft MSXML                                     2.6 3.0 5.0 6.0 
Microsoft Internet Explorer                         8.0.6001.18813
Microsoft .NET Framework                            2.0.50727.3074
Operating System                                    6.0.6001

Есть несколько источников (MSSqlTips, и здесь), которые утверждают, что аргументы командной строки доступны на sqlwb.exe. Однако на странице Books Online для ssms говорится, что опции доступны на ssms.

0
ответ дан 4 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: