web-dev-qa-db-fra.com

Alternative au pack d'outils SSMS

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 réalise 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 des 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 quelques ajouts sympas à SSMS qui semblent en valoir la peine.

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?

19
WernerCD

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 exemple de projet d'Andrei avec la classe Connect 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
    }
}
9
Martin Smith

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 de nombreux 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])

11

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 faire

4
AlexTheDeveloper

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

Avertissement: je suis le développeur du produit

1
Latish