Альтернативный пакет инструментов SSMS [закрыто]

18

Существуют ли какие-либо инструменты, сравнимые с SSMS Tools Pack 2012 ? Лицензирование (30 долларов за машину, 100 долларов за любое количество машин ... на 3 месяца) оставляет желать лучшего, и я не был уверен, какие другие варианты доступны.

Например, одна вещь, которую мне действительно не хватает, это «Сохранить каждый запрос, который вы запускаете». При работе и исследованиях было очень полезно иметь резервную копию разных версий запросов, когда я их запускаю. Или когда я понимаю, что у меня нет резервной копии запроса, над которым я работал 2 месяца назад.

Пояснение: SQL Server Management Studio не имеет официальной поддержки надстроек, но есть некоторые инструменты. Пакет инструментов SSMS мне очень понравился (версии 2005, 2008), но плата за лицензию на 2012 год ужасна. (Я бы заплатил за разумную лицензию, но здесь вопрос не в этом.)

Например, я обнаружил, что в SSMS Boost есть несколько интересных дополнений к SSMS, которые, похоже, того стоят.

Какие другие надстройки доступны для SQL Server 2012? Я хотел бы иметь что-то, что сохраняет запрос, когда я нажимаю F5, как SSMS Tools Pack, или что-нибудь еще, кроме двух перечисленных инструментов?

WernerCD
источник
1
У меня были такие же мысли о стоимости тоже. В codeplex есть несколько надстроек SSMS, поэтому, возможно, создание надстройки «Сохранить каждый запрос», основанной на них, может быть не слишком сложным.
Мартин Смит
@MartinSmith Да, я опубликовал SSMS Boost - в котором также есть краткий обзор способов создания надстроек, а также другие интересные функции. Я не тот, кто изобретает велосипед, если у меня его тоже нет, но мне, возможно, придется пойти по этому пути, если он недоступен: ssmsboost.com/…
WernerCD
1
Привет, я создатель SSMSBoost. У нас уже есть функция «Сохранить каждый выполняемый запрос», она будет выпущена в течение 1 месяца. Пожалуйста, используйте наш форум, чтобы написать ваши требования / баллы, которые вы хотите иметь в этой функции. (или напишите на support@ssmsboost.com)
Андрей Ранцевич
2
Здравствуйте, просто чтобы сообщить, что я добавил новые опции лицензирования в SSMS Tools Pack. Отправьте мне письмо, если у вас есть какие-либо вопросы по этому поводу. Если вам это не нравится, я уверен, что мы можем что-нибудь придумать. :) Честно говоря, SSMSBoost выглядит довольно круто.
Младен Прайдич
@MladenPrajdic Я буду честен, мне больше нравится этот набор терминов. Я на самом деле рассмотрю версию за 100 долларов (хотя немного больше, чем я хотел бы потратить ... Я привык получать скидки на продажу и / или студенческие скидки, лол). Ожидайте письмо скоро с парой вопросов.
WernerCD

Ответы:

9

Я подумал, что поиграю с этим и для заявленной цели иметь что-то, что «сохраняет каждый выполняемый запрос», работающее на SQL Server 2012 SSMS, похоже, будет работать на моем компьютере (добавьте свою собственную обработку ошибок / тестирование / рефакторинг)

Он основан на примере проекта Андрея с Connectзаменой класса. Проект SSMSAddin2012 на Codeplex также очень полезен.

namespace SSMSAddin
{
    using System;
    using System.IO;
    using System.Windows.Forms;
    using EnvDTE;
    using EnvDTE80;
    using Extensibility;
    using Microsoft.SqlServer.Management.UI.VSIntegration;

    public class Connect : IDTExtensibility2
    {
        private DTE2 application;
        private CommandEvents executeSqlEvents;

        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            this.application = (DTE2)application;
            this.executeSqlEvents = this.application.Events.CommandEvents["{52692960-56BC-4989-B5D3-94C47A513E8D}", 1];
            this.executeSqlEvents.BeforeExecute += this.executeSQLEvents_BeforeExecute;
        }

        private void executeSQLEvents_BeforeExecute(string guid, int id, object customin, object customout, ref bool canceldefault)
        {
            try
            {
                Document document = ((DTE2)ServiceCache.ExtensibilityModel).ActiveDocument;
                var textDocument = (TextDocument)document.Object("TextDocument");

                string queryText = textDocument.Selection.Text;

                if(string.IsNullOrEmpty(queryText))
                {
                    EditPoint startPoint = textDocument.StartPoint.CreateEditPoint();
                    queryText = startPoint.GetText(textDocument.EndPoint);
                }

                DateTime now = DateTime.Now;
                string folderPath = string.Format(@"E:\SSMS Queries\{0}", now.ToString("yyyyMMdd"));
                string fileName = now.ToString("HHmmss-FFFFFFF") + ".sql";
                Directory.CreateDirectory(folderPath);
                string fullPath = Path.Combine(folderPath, fileName);
                File.WriteAllText(fullPath, queryText);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        #region Other Interface Methods

        public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom) { }

        public void OnStartupComplete(ref Array custom) { }

        public void OnAddInsUpdate(ref Array custom) { }

        public void OnBeginShutdown(ref Array custom) { }

        #endregion
    }
}
Мартин Смит
источник
1
Отлично сделано :) На самом деле мы реализовали эту функцию - она ​​появится в SSMSBoost 2.7 (она была слишком короткой для v2.6, которая выйдет в эти выходные). Итак, через 2-4 недели он будет в сети с некоторыми настройками ...
Андрей Ранцевич
@AndreiRantsevich - Я уверен, что ваш будет гораздо более полнофункциональным! Я просто хотел оправдание, чтобы поиграть с Аддинсом.
Мартин Смит
Мне приятно знать, что вы могли бы использовать мой проект как стартовый для создания своего образца. Вы используете SSMSBoost? Если у вас есть какие-либо пожелания - отправьте мне письмо по электронной почте, и я рассмотрю возможность их реализации. Я могу представить, что у вас есть что-то, что вы хотите иметь в SSMS, если вы нашли пример проекта :). Вы можете взглянуть на бета-уведомление v2.6, которое я опубликовал сегодня - в нем много новых приятных функций! ssmsboost.com/social/…
Андрей Ранцевич
@AndreiRantsevich - Единственное, что приходит на ум в данный момент, - это, вероятно, то, что несколько других людей, кроме меня, сочли бы полезным. Я хотел бы, чтобы способ экспортировать план выполнения в виде изображения с некоторыми из свойств оператора, аннотированных на изображение. Я, наверное, сам пойду.
Мартин Смит
1
@WernerCD Это пространство имен появляется, SqlWorkbench.Interfaces.dllи SqlPackageBase.dllоба из них находятся C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudioна моей машине
Мартин Смит
10

Еще немного информации от разработчика SSMSBoost. Как только вы упомянули мой проект, я позволю себе написать несколько слов о проекте. Основная причина, по которой я написал инструмент, заключалась в том, что я упустил возможности повышения производительности, касающиеся разработки T-SQL и задач, ориентированных на администраторов баз данных. Например:

  1. частое переключение между разными серверами
  2. писать 1000 раз в день "выбрать * из" ...
  3. экспортировать результаты сетки в Excel / XML
  4. ведение списка любимых соединений
  5. предупреждение от SSMS при подключении к live-среде

все эти и некоторые другие ежедневные операции описаны в SSMSBoost и постоянно совершенствуются. В настоящее время я выпускаю новую версию каждые 30-40 дней. За последние 3 версии я также получил много положительных / конструктивных отзывов от пользователей и улучшил множество функций. Ваше предложение сохранить каждый выполненный запрос также скоро будет реализовано. Как я уже писал - если вы хотите что-то особенное, напишите мне по электронной почте (support@ssmsboost.com)

Андрей Ранцевич
источник
Круто :) У меня не было возможности начать тестировать некоторые из функций, которые я видел (меня больше всего интересует вариант «форматировать запрос» среди других), но я определенно скачал его для установки везде, где я использую SSMS. Я буду следить за этим обновлением.
WernerCD
Я только что прочитал вашу статью, на которую ссылается ОП, и подумал, что взгляну на образец. У меня установлена ​​RTM-версия 2012 года, но нет SqlPackageBase.dll. Не могу найти много ссылок на это и в Google. Вы уверены, что он должен быть установлен с SSMS?
Мартин Смит
Да - это установлено с SSMS. Вот мои версии: Microsoft SQL Server Management Studio 11.0.2100.60 Компоненты доступа к данным Microsoft (MDAC) 6.1.7601.17514 Microsoft MSXML 3.0 4.0 6.0 Операционная система 6.1.7601 Dll находится в этой папке: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlPackageBase.dll
Андрей Ранцевич
@AndreiRantsevich - Ах, я x64тоже в поиске и C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ManagementStudioспасибо! (Стоит упомянуть об этом в статье, в которой вы указываете пути)
Мартин Смит,
Все еще терпеливо жду вашего релиза, кстати :)
WernerCD
4

Еще одна бесплатная и очень приятная и удобная альтернатива - SQL Hunting Dog.

http://www.sql-hunting-dog.com

он работает со студией управления SQL Server 2008/2012 и дает вам гораздо лучшую навигацию (однако он имеет меньше возможностей, чем ssmstoolpack.)

маленький как

AlexTheDeveloper
источник
Мне нравится, как это выглядит. Выглядит гладко и потрясающе. Определенно, похоже, что он не обладает той «широтой», которой обладают наборы инструментов, но мне действительно нравятся те немногие вещи, которые он делает, - как это, кажется, делает их хорошо.
WernerCD
Ну, я не пытаюсь конкурировать с пакетом инструментов. Просто пытаюсь построить приятную и плавную навигацию и быстрый поиск.
AlexTheDeveloper
Одно предложение - мы работаем со многими базами данных в нашей компании. Было бы замечательно, если бы инструмент по умолчанию подключался к базе данных текущего окна запросов. Или есть вариант по умолчанию для конкретной базы данных.
Гейб
1

Это не бесплатно, но SqlSmash также является надстройкой для SSMS 2012, 2014.

Отказ от ответственности: я разработчик для продукта

запоздавший
источник