Почему перестали работать коммутаторы командной строки SQL Server Management Studio 2008?

Я всегда сильно полагался на ярлыки 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 не очень полезен в этой теме.

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

4 ответов


Я бросил DLL в reflector, и он вернул мне код в нижней части этого сообщения, к сожалению, в коде нет ничего сразу очевидного, что позволяет легко понять, почему он перестал работать для вас (было бы неплохо, если бы 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;
}

окно ObjectExplorer должно быть открыто. Не прячься. Я решил свою проблему таким образом:)


работает так:

sqlwb.exe -S . -E -d dbName

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

Это информация о версии, созданная SSMS о диалоге:

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. Еще книги онлайн страница среда SSMS указано, что параметры доступны на ssms.