Pakiet narzędzi SSMS Alternative [zamknięty]

18

Czy istnieją jakieś narzędzia porównywalne z pakietem narzędzi SSMS 2012 ? Licencja (30 USD na maszynę, 100 USD na dowolną liczbę maszyn ... przez 3 miesiące) pozostawia wiele do życzenia i nie byłem pewien, jakie inne opcje są dostępne.

Na przykład jedną rzeczą, za którą tak naprawdę tęsknię, jest „Zapisz każde uruchomione zapytanie”. Podczas majsterkowania i badań nieocenione było posiadanie kopii zapasowej różnych wersji zapytań podczas ich uruchamiania. Lub kiedy zdaję sobie sprawę, że nie mam kopii zapasowej zapytania, nad którym pracowałem 2 miesiące temu.

Wyjaśnienie: SQL Server Management Studio nie ma oficjalnej obsługi dodatków, ale istnieją pewne narzędzia. Pakiet narzędzi SSMS bardzo mi się podobał (wersje 2005, 2008), ale opłata licencyjna za rok 2012 jest straszna. (Zapłaciłbym za rozsądną licencję, ale nie o to tu chodzi).

Znalazłem na przykład SSMS Boost, który ma kilka fajnych dodatków do SSMS, które wydają się tego warte.

Jakie inne dodatki są dostępne dla programu SQL Server 2012? Chciałbym mieć coś, co zapisuje zapytanie, gdy uderzę w F5, tak jak robi to SSMS Tools Pack, czy coś poza dwoma wymienionymi narzędziami?

WernerCD
źródło
1
Te same myśli o kosztach. Istnieje kilka dodatków SSMS na codeplex, więc być może uruchomienie dodatków „Zapisz każde uruchomione zapytanie” na ich podstawie może nie być zbyt trudne.
Martin Smith
@MartinSmith Tak, opublikowałem SSMS Boost - który również wydaje się być szybki w tworzeniu dodatków, a także innych interesujących funkcji. Nie jestem kimś, kto wymyśli na nowo koło, jeśli ja też nie mam, ale być może będę musiał wybrać tę trasę, jeśli nie będzie dostępna: ssmsboost.com/…
WernerCD
1
Cześć, jestem twórcą SSMSBoost. Trwa już funkcja „Zapisz każde uruchomione zapytanie”, zostanie wydana w ciągu około 1 miesiąca. Skorzystaj z naszego forum, aby zapisać swoje wymagania / punkty, które chcesz mieć w tej funkcji. (lub napisz do [email protected])
Andrei Rantsevich
2
Cześć, aby poinformować, że dodałem nowe opcje licencjonowania do pakietu narzędzi SSMS. Wyślij mi e-mail, jeśli masz jakieś pytania na ten temat. Jeśli ci się nie podoba, jestem pewien, że możemy coś wymyślić. :) Szczerze mówiąc, SSMSBoost wygląda całkiem fajnie.
Mladen Prajdic,
@MladenPrajdic Będę szczery, podoba mi się ten zestaw warunków DUŻO. Zastanowię się nad wersją za 100 USD (choć nieco więcej, niż chciałbym wydać ... Jestem przyzwyczajony do uzyskiwania sprzedaży i / lub zniżek dla studentów lol). Spodziewaj się wkrótce e-maila z kilkoma pytaniami.
WernerCD,

Odpowiedzi:

9

Pomyślałem, że będę się z tym bawić i dla określonego celu posiadania czegoś, co „zapisuje każde uruchomione zapytanie”, które działa w programie SQL Server 2012 SSMS, wydaje się, że jest to zadanie na mojej maszynie (dodaj własną obsługę / testowanie błędów / refaktoryzacja)

Opiera się na przykładowym projekcie Andreja z Connectzastąpioną klasą. Projekt SSMSAddin2012 na Codeplex jest również bardzo przydatne.

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
    }
}
Martin Smith
źródło
1
Dobra robota :) W rzeczywistości zaimplementowaliśmy tę funkcję - pojawi się w SSMSBoost 2.7 (było za krótkie na wersję 2.6, która zostanie wydana w ten weekend). Po 2-4 tygodniach będzie dostępny online z kilkoma opcjami dostosowywania ...
Andrei Rantsevich,
@AndreiRantsevich - Jestem pewien, że twój będzie o wiele bardziej funkcjonalny! Chciałem tylko wymówki, aby grać z dodatkami.
Martin Smith
Cieszę się, że możesz wykorzystać mój projekt jako start-up do zbudowania swojej próbki. Czy używasz SSMSBoost? Jeśli masz jakieś życzenia - wyślij mi e-mail, rozważę ich wdrożenie. Mogę sobie wyobrazić, że masz coś, co chcesz mieć w SSMS, o ile znalazłeś przykładowy projekt :). Możesz zapoznać się z powiadomieniem beta v2.6, które opublikowałem dzisiaj - ma wiele nowych fajnych funkcji! ssmsboost.com/social/…
Andrei Rantsevich
@AndreiRantsevich - Jedyne, co przychodzi mi teraz na myśl, to prawdopodobnie coś, co niewiele innych osób oprócz mnie mogłoby uznać za przydatne. Chciałbym sposób wyeksportować plan wykonania jako obraz z niektórymi właściwościami operatora opatrzonymi adnotacjami na obrazie. Prawdopodobnie sam to spróbuję.
Martin Smith
1
@WernerCD Ta przestrzeń nazw pojawia się SqlWorkbench.Interfaces.dlli SqlPackageBase.dlloba są C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudiona mojej maszynie
Martin Smith
10

Więcej informacji od dewelopera SSMSBoost. Jak tylko wspominasz o moim projekcie, pozwalam sobie napisać kilka słów o tym projekcie. Głównym powodem, dla którego napisałem to narzędzie było to, że brakowało mi funkcji zwiększających produktywność, dotyczących programowania T-SQL i zadań zorientowanych na DBA. Na przykład:

  1. częste przełączanie połączeń między różnymi serwerami
  2. pisząc 1000 razy dziennie „wybierz * z” ...
  3. eksportuj wyniki siatki do programu Excel / xml
  4. prowadzenie listy ulubionych połączeń
  5. ostrzeżenie z SSMS podczas łączenia się ze środowiskiem na żywo

wszystkie te i niektóre inne codzienne operacje są adresowane w SSMSBoost i są stale ulepszane. Obecnie wypuszczam nową wersję co 30-40 dni. W ciągu ostatnich 3 wersji otrzymałem również wiele pozytywnych / konstruktywnych opinii użytkowników i wiele funkcji zostało ulepszonych. Twoja propozycja zapisania każdego wykonanego zapytania zostanie wkrótce wdrożona. Jak napisałem - jeśli chcesz mieć coś specjalnego, napisz do mnie e-mail ([email protected])

Andrei Rantsevich
źródło
Niesamowite :) Nie miałem okazji rozpocząć testowania niektórych funkcji, które widziałem (najbardziej interesuje mnie opcja „format zapytania”, oprócz innych), ale zdecydowanie pobrałem ją, aby zainstalować wszędzie tam, gdzie używam SSMS. Będę miał oko na tę aktualizację.
WernerCD
Właśnie przeczytałem twój artykuł powiązany z OP i pomyślałem, że przyjrzę się próbce. Mam zainstalowaną wersję RTM studia zarządzania 2012, ale nie widzę SqlPackageBase.dll. Nie mogę też znaleźć wielu odniesień do tego w Google. Czy na pewno należy go zainstalować z SSMS?
Martin Smith
Tak - jest instalowany z SSMS. Oto moje wersje: Microsoft SQL Server Management Studio 11.0.2100.60 Microsoft Data Access Components (MDAC) 6.1.7601.17514 Microsoft MSXML 3.0 4.0 6.0 System operacyjny 6.1.7601 Dll znajduje się w tym folderze: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Narzędzia \ Binn \ ManagementStudio \ SqlPackageBase.dll
Andrei Rantsevich
@AndreiRantsevich - Ach, ja też jestem włączony x64i szukałem C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ManagementStudioDzięki! (Może warto o tym wspomnieć w artykule, w którym podajesz ścieżki)
Martin Smith
Wciąż cierpliwie czekam na wasze wydanie btw :)
WernerCD
4

Kolejną darmową, bardzo miłą i przyjazną dla użytkownika alternatywą jest pies myśliwski SQL.

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

współpracuje z SQL Server Management Studio 2008/2012 i zapewnia znacznie lepszą nawigację (jednak ma mniej funkcji niż ssmstoolpack).

małe jak

AlexTheDeveloper
źródło
Podoba mi się to. Wygląda gładko i niesamowicie. Zdecydowanie nie wydaje się mieć „szerokości”, jaką mają pakiety narzędzi, ale naprawdę podoba mi się kilka rzeczy, które robi - ponieważ wydaje się, że robią to dobrze.
WernerCD
Cóż, nie próbuję konkurować z zestawem narzędzi. Po prostu próbuję zbudować ładną i płynną nawigację oraz szybkie wyszukiwanie.
AlexTheDeveloper
Jedna sugestia - pracujemy z wieloma bazami danych w naszej firmie. Byłoby wspaniale, gdyby narzędzie domyślnie korzystało z połączenia z bazą danych bieżącego okna zapytania. Lub masz opcję domyślnej określonej bazy danych.
Gabe
1

To nie jest darmowe, ale SqlSmash jest również dodatkiem do SSMS 2012, 2014.

Oświadczenie: Jestem programistą produktu

Późnawo
źródło