SSMS Tools Pack Alternative [fermé]

18

Existe-t-il des outils comparables à SSMS Tools Pack 2012 ? La licence (30 $ par machine, 100 $ pour n'importe quel nombre de machines ... pendant 3 mois) laisse beaucoup à désirer et je n'étais pas sûr des autres options disponibles.

Par exemple, une chose qui me manque vraiment est "Enregistrer chaque requête que vous exécutez". Lors de bricolages et de recherches, il a été inestimable d'avoir une sauvegarde en cours d'exécution de différentes versions de requêtes pendant que je les exécute. Ou quand je me rends compte que je n'ai pas de sauvegarde d'une requête sur laquelle je travaillais il y a 2 mois.

Clarification: SQL Server Management Studio n'a pas de prise en charge officielle des modules complémentaires, mais il existe certains outils. SSMS Tools Pack en est un que j'ai beaucoup aimé (versions 2005, 2008), mais les frais de licence pour 2012 sont horribles. (Je paierais pour une licence raisonnable, mais ce n'est pas la question ici.)

J'ai trouvé SSMS Boost par exemple qui a des ajouts sympas à SSMS qui semblent valoir le coup.

Quels autres compléments sont disponibles pour SQL Server 2012? J'aimerais avoir quelque chose qui enregistre une requête lorsque je touche F5 comme le fait SSMS Tools Pack, ou quoi que ce soit d'autre que les deux outils répertoriés?

WernerCD
la source
1
J'avais aussi les mêmes réflexions sur le coût. Il y a quelques compléments SSMS sur codeplex, donc peut-être créer un complément "Enregistrer chaque requête que vous exécutez" basé sur ceux-ci pourrait ne pas être trop difficile.
Martin Smith
@MartinSmith Oui, j'ai publié SSMS Boost - qui semble également avoir un moyen rapide de créer des compléments, ainsi que d'autres fonctionnalités intéressantes. Je ne suis pas du genre à réinventer la roue si je n'en ai pas aussi, mais je devrai
WernerCD
1
Salut, je suis le créateur de SSMSBoost. Nous avons déjà une fonctionnalité "Enregistrer chaque requête que vous exécutez" en cours, elle sera publiée dans environ 1 mois. Veuillez utiliser notre forum pour écrire vos exigences / points que vous souhaitez avoir dans cette fonctionnalité. (ou écrivez à [email protected])
Andrei Rantsevich
2
Bonjour, pour vous informer que j'ai ajouté de nouvelles options de licence au pack d'outils SSMS. Envoyez-moi un e-mail si vous avez des questions à ce sujet. Si vous ne l'aimez pas, je suis sûr que nous pouvons trouver une solution. :) Pour être honnête, SSMSBoost a l'air plutôt cool.
Mladen Prajdic
@MladenPrajdic Je vais être honnête, j'aime beaucoup mieux cet ensemble de termes. J'envisagerai en fait la version à 100 $ (bien qu'un peu plus que je ne voudrais dépenser ... J'ai l'habitude d'obtenir des rabais de vente et / ou étudiants lol). Attendez-vous bientôt à un e-mail avec quelques questions.
WernerCD

Réponses:

9

Je pensais que j'aurais un jeu avec cela et dans le but déclaré d'avoir quelque chose qui "enregistre chaque requête que vous exécutez" qui fonctionne sur SQL Server 2012 SSMS, cela semble faire le travail sur ma machine (ajoutez votre propre gestion des erreurs / tests / refactoring)

Il est basé sur l'exemple de projet d'Andrei avec la Connectclasse remplacée. le projet SSMSAddin2012 sur Codeplex est également très utile.

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
la source
1
Bravo :) Nous avons effectivement implémenté cette fonctionnalité - elle arrivera dans SSMSBoost 2.7 (elle était trop courte pour la v2.6 qui sera publiée ce week-end). Donc, après 2-4 semaines, il sera en ligne avec quelques options de personnalisation ...
Andrei Rantsevich
@AndreiRantsevich - Je suis sûr que le vôtre sera beaucoup plus complet! Je voulais juste une excuse pour jouer avec Addins.
Martin Smith
Je suis heureux de savoir que vous pouvez utiliser mon projet comme start-up pour construire votre échantillon. Utilisez-vous SSMSBoost? Si vous avez des souhaits - envoyez-moi un e-mail, je vais envisager de les mettre en œuvre. Je peux imaginer que vous avez quelque chose, que vous voulez avoir dans SSMS, pour autant que vous ayez trouvé l'exemple de projet :). Vous pouvez jeter un œil à la bêta-notification v2.6, que j'ai publiée aujourd'hui - elle a beaucoup de nouvelles fonctionnalités intéressantes! ssmsboost.com/social/…
Andrei Rantsevich
@AndreiRantsevich - La seule chose qui me vient à l'esprit en ce moment est probablement quelque chose que peu de gens en dehors de moi trouveraient utile. Je voudrais un moyen d'exporter le plan d'exécution sous forme d'image avec certaines des propriétés de l'opérateur annotées sur l'image. Je vais probablement essayer moi-même.
Martin Smith
1
@WernerCD Cet espace de noms apparaît dans SqlWorkbench.Interfaces.dllet les SqlPackageBase.dlldeux sont C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudiosur ma machine
Martin Smith
10

Quelques informations supplémentaires du développeur SSMSBoost. Dès que vous avez mentionné mon projet, je me permets d'écrire quelques mots sur le projet. La principale raison pour laquelle j'ai écrit l'outil est que j'ai manqué des fonctionnalités de productivité concernant le développement T-SQL et les tâches orientées DBA. Par exemple:

  1. Commutation de connexion fréquente entre différents serveurs
  2. écrire 1000 fois par jour "sélectionner * à partir de" ...
  3. exporter les résultats de la grille vers Excel / XML
  4. garder une liste des connexions préférées
  5. avoir un avertissement de SSMS lors de la connexion à l'environnement en direct

toutes ces opérations et quelques autres opérations quotidiennes sont traitées dans SSMSBoost et ont été constamment améliorées. Actuellement, je publie une nouvelle version tous les 30 à 40 jours. Au cours des 3 dernières versions, j'ai également reçu beaucoup de commentaires positifs / constructifs des utilisateurs et de nombreuses fonctionnalités ont été améliorées. Votre proposition de sauvegarder chaque requête exécutée sera également bientôt mise en œuvre. Comme je l'ai écrit - si vous voulez quelque chose de spécial, écrivez-moi un e-mail ([email protected])

Andrei Rantsevich
la source
Génial :) Je n'ai pas eu la chance de commencer à tester certaines des fonctionnalités que j'ai vues (je suis plus intéressé par l'option "requête de format", entre autres), mais je l'ai définitivement téléchargé pour l'installer partout où j'utilise SSMS. Je garderai un œil sur cette mise à jour.
WernerCD
Je viens de lire votre article lié par l'OP et j'ai pensé jeter un œil à l'échantillon. J'ai installé la version RTM du studio de gestion 2012, mais voyez non SqlPackageBase.dll. Je ne trouve pas non plus de nombreuses références à cela sur Google. Êtes-vous sûr qu'il devrait être installé avec SSMS?
Martin Smith
Oui - il est installé avec SSMS. Voici mes versions: 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 Operating System 6.1.7601 Dll se trouve dans ce dossier: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlPackageBase.dll
Andrei Rantsevich
@AndreiRantsevich - Ah je suis x64aussi bien et regardais dans C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ManagementStudioMerci! (Cela vaut peut-être la peine de le mentionner dans l'article où vous énoncez les chemins)
Martin Smith
J'attends toujours patiemment ta sortie btw :)
WernerCD
4

Une autre alternative gratuite et très agréable et conviviale est SQL Hunting Dog.

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

il fonctionne avec SQL Server Management Studio 2008/2012 et vous offre une bien meilleure navigation (mais il a moins de fonctionnalités que ssmstoolpack.)

petit comment

AlexTheDeveloper
la source
J'aime son apparence. Semble lisse et génial. Il ne semble certainement pas avoir la "largeur" ​​des packs d'outils, mais j'aime vraiment le peu de choses qu'il fait - car il semble bien le faire.
WernerCD
Eh bien, je n'essaie pas de rivaliser avec la trousse à outils. J'essaie simplement de créer une navigation agréable et fluide et une recherche rapide.
AlexTheDeveloper
Une suggestion - nous travaillons avec de nombreuses bases de données dans notre entreprise. Ce serait formidable si l'outil utilisait par défaut la connexion à la base de données de la fenêtre de requête actuelle. Ou avez une option pour utiliser par défaut une base de données spécifique.
Gabe
1

Ce n'est pas gratuit mais SqlSmash est également un complément pour SSMS 2012, 2014.

Avertissement: je suis le développeur du produit

Tardif
la source