SSMS Tools Pack Alternative [cerrado]

18

¿Hay alguna herramienta comparable a SSMS Tools Pack 2012 ? La licencia ($ 30 por máquina, $ 100 para cualquier cantidad de máquinas ... durante 3 meses) deja mucho que desear y no estaba seguro de qué otras opciones están disponibles.

Por ejemplo, una cosa que realmente extraño es el "Guardar cada consulta que ejecute". Al realizar ajustes e investigaciones, ha sido invaluable tener una copia de seguridad en ejecución de diferentes versiones de consultas mientras las ejecuto. O cuando me doy cuenta de que no tengo una copia de seguridad de una consulta en la que estaba trabajando hace 2 meses.

Aclaración: los SQL Server Management Studio no tienen soporte de complementos oficial, pero hay algunas herramientas disponibles. SSMS Tools Pack es uno que me ha gustado mucho (versiones 2005, 2008), pero la tarifa de licencia para 2012 es horrible. (Pagaría una licencia razonable, pero esa no es la cuestión aquí).

He encontrado SSMS Boost, por ejemplo, que tiene algunas adiciones interesantes a SSMS que parecen valer la pena.

¿Qué otros complementos están disponibles para SQL Server 2012? Me encantaría tener algo que guarde una consulta cuando presiono F5 como lo hace SSMS Tools Pack, ¿o algo más allá de las dos herramientas enumeradas?

WernerCD
fuente
1
También tuve los mismos pensamientos sobre el costo. Hay algunos complementos de SSMS en codeplex, por lo que quizás eliminar un complemento "Guardar cada consulta que ejecute" basado en ellos podría no ser demasiado difícil.
Martin Smith
@MartinSmith Sí, publiqué SSMS Boost, que también parece tener un rápido acerca de cómo crear complementos, así como otras características interesantes. No soy uno para reinventar la rueda si no tengo también, pero podría tener que seguir esta ruta si no está disponible: ssmsboost.com/…
WernerCD
1
Hola, soy creador de SSMSBoost. Ya tenemos en curso la función "Guardar cada consulta que ejecuta", se lanzará dentro de aproximadamente 1 mes. Utilice nuestro foro para escribir sus requisitos / puntos que desea tener en esta función. (o escriba a [email protected])
Andrei Rantsevich
2
Hola, solo para hacerle saber que he agregado nuevas opciones de licencia al Paquete de herramientas de SSMS. Envíame un correo electrónico si tienes alguna pregunta al respecto. Si no te gusta, estoy seguro de que podemos resolver algo. :) Para ser honesto, SSMSBoost se ve muy bien.
Mladen Prajdic
@MladenPrajdic Seré sincero, me gusta mucho más este conjunto de términos. De hecho, consideraré la versión de $ 100 (aunque un poco más de lo que me gustaría gastar ... Estoy acostumbrado a obtener rebajas y / o descuentos para estudiantes, jajaja). Espere un correo electrónico pronto con un par de preguntas.
WernerCD

Respuestas:

9

Pensé que jugaría con esto y para el objetivo declarado de tener algo que "guarde cada consulta que ejecute" que funcione en SSMS de SQL Server 2012, este parece ser el trabajo en mi máquina (agregue su propio manejo / prueba de errores / refactorización)

Se basa en el proyecto de muestra de Andrei con la Connectclase reemplazada. El proyecto SSMSAddin2012 en Codeplex también es muy útil.

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
fuente
1
Bien hecho :) Hemos implementado esta característica: vendrá en SSMSBoost 2.7 (era demasiado corto para v2.6 que se lanzará este fin de semana). Entonces, después de 2-4 semanas estará en línea con algunas opciones de personalización ...
Andrei Rantsevich
@AndreiRantsevich - ¡Estoy seguro de que el tuyo tendrá muchas más funciones! Solo quería una excusa para jugar con Addins.
Martin Smith
Me complace saber que podría utilizar mi proyecto como inicio para crear su muestra. ¿Usas SSMSBoost? Si tiene algún deseo, envíeme un correo electrónico, consideraré implementarlo. Me imagino que tienes algo que quieres tener en SSMS, en la medida en que hayas encontrado el proyecto de muestra :). Puedes echar un vistazo a la notificación beta v2.6, que he publicado hoy, ¡tiene muchas características nuevas y agradables! ssmsboost.com/social/…
Andrei Rantsevich
@AndreiRantsevich: lo único que me viene a la mente en este momento es probablemente algo que otras personas aparte de mí encontrarían útil. Me gustaría una forma de exportar el plan de ejecución como una imagen con algunas de las propiedades del operador anotadas en la imagen. Probablemente lo intente yo mismo.
Martin Smith
1
@WernerCD Ese espacio de nombres aparece SqlWorkbench.Interfaces.dlly SqlPackageBase.dllambos están en C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudiomi máquina
Martin Smith
10

Un poco más de información del desarrollador SSMSBoost. Tan pronto como mencionaste mi proyecto, me permito escribir algunas palabras sobre el proyecto. La razón principal por la que he escrito la herramienta es que he echado de menos las características de productividad relacionadas con el desarrollo de T-SQL y las tareas orientadas a DBA. Por ejemplo:

  1. cambio frecuente de conexión entre diferentes servidores
  2. escribir 1000 veces al día "seleccionar * de" ...
  3. exportar resultados de cuadrícula a excel / xml
  4. mantener una lista de conexiones favoritas
  5. tener una advertencia de SSMS cuando se conecta a un entorno en vivo

Todas estas y algunas otras operaciones diarias se abordan en SSMSBoost y se han mejorado constantemente. Actualmente lanzo una nueva versión cada 30-40 días. En las últimas 3 versiones también recibí muchos comentarios positivos / constructivos de los usuarios y se mejoraron muchas características. Su propuesta para guardar cada consulta ejecutada también se implementará pronto. Como escribí, si quieres tener algo especial escríbeme un correo electrónico ([email protected])

Andrei Rantsevich
fuente
Impresionante :) No he tenido la oportunidad de comenzar a probar algunas de las características que vi (estoy más interesado en la opción "formato de consulta", entre otras), pero definitivamente la descargué para instalarla donde sea que use SSMS. Estaré atento a esa actualización.
WernerCD
Acabo de leer su artículo vinculado por el OP y pensé en echar un vistazo a la muestra. Tengo instalada la versión RTM del estudio de gestión 2012, pero no veo SqlPackageBase.dll. Tampoco puedo encontrar muchas referencias a esto en Google. ¿Estás seguro de que debe instalarse con SSMS?
Martin Smith
Sí, se instala con SSMS. Estas son mis versiones: Microsoft SQL Server Management Studio 11.0.2100.60 Componentes de acceso a datos de Microsoft (MDAC) 6.1.7601.17514 Microsoft MSXML 3.0 4.0 6.0 Sistema operativo 6.1.7601 Dll se encuentra en esta carpeta: C: \ Archivos de programa (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlPackageBase.dll
Andrei Rantsevich
@AndreiRantsevich - Ah, yo también estoy x64y estaba buscando C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ManagementStudio¡Gracias! (Podría valer la pena mencionar esto en el artículo donde se indican los caminos)
Martin Smith
Todavía esperando pacientemente su liberación por cierto :)
WernerCD
4

Otra alternativa gratuita y muy agradable y fácil de usar es SQL Hunting Dog.

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

funciona con el estudio de administración de SQL Server 2008/2012 y le ofrece una navegación mucho mejor (sin embargo, tiene menos funciones que ssmstoolpack).

pequeño cómo

AlexTheDeveloper
fuente
Me gusta el aspecto de esto. Se ve suave y sorprendente. Definitivamente no parece tener la "amplitud" que tienen los paquetes de herramientas, pero realmente me gustan las pocas cosas que hace, ya que parece hacerlas bien.
WernerCD
Bueno, no estoy tratando de competir con el paquete de herramientas. Solo trato de construir una navegación agradable y fluida y una búsqueda rápida.
AlexTheDeveloper
Una sugerencia: trabajamos con muchas bases de datos en nuestra empresa. Sería genial si la herramienta tuviera por defecto la conexión de la base de datos de la Ventana de consulta actual. O tener una opción para establecer una base de datos específica.
Gabe
1

No es gratis, pero SqlSmash también es un complemento para SSMS 2012, 2014.

Descargo de responsabilidad: soy el desarrollador del producto

Bastante tarde
fuente