Cómo codificar más rápido con fragmentos de código de SQL Server

ApexSQL Complete es un complemento para SQL Server Management Studio y Visual Studio diseñado para acelerar a codificación. Este complemento completa sentencias SQL automáticamente, llena fragmentos SQL, genera bosquejos para la estructura del script SQL y acelera la codificación con fragmentos de código T-SQL.

octubre 19, 2017

Cómo mantener dos esquemas de bases de datos SQL en sincronización

Desafío

Cuando se trabaja en el desarrollo de una base de datos, hay a veces un requerimiento para mantener las dos bases de datos en sincronización. Por ejemplo, usted tiene un ambiente de desarrollo y quiere sincronizar automáticamente los cambios con una base de datos de Control de Calidad frecuentemente, de modo que las pruebas puedan siempre correr en la versión más reciente. El mecanismo implementado debería manejar esto detectando un cambio específico en el esquema en la base de datos de Desarrollo (DEV) y sincronizando automáticamente con la base de datos de Control de Calidad (QA), sin supervisión y con un programa. El proceso completo debería correr sin supervisión y estar completamente automatizado, y las bases de datos serán actualizadas casi en tiempo real, dado que programaremos el proceso para que corra cada 15 minutos.

julio 22, 2017

Cómo automatizar la codificación y envío por lotes de objetos SQL al control de versiones

Muchos equipos de desarrollo tienen la necesidad de una solución rápida pero efectiva para enviar objetos de bases de datos SQL Server al control de versiones, pero no están listos para moverse a una integración total.

Para que los objetos estén bajo el control de versiones en un enfoque “económico”, scripts de creación necesitan ser producidos para cada tabla, procedimiento almacenado, o cualquier otro objeto en la base de datos. Después, los scripts necesitan ser enviados a un sistema de control de versiones.

julio 22, 2017

Cómo sincronizar automáticamente los datos en dos bases de datos SQL Server en un programa

Desafío

Es a menudo necesario tener una manera de sincronizar datos entre bases de datos SQL en tiempo real, por ejemplo, cuando un cierto dato es cambiado/añadido en un lugar (base de datos) a ser sincronizado con otra base de datos. Los cambios necesitan ser detectados automáticamente en un programa, y sincronizados automáticamente con otra base de datos. Este proceso debería ser completamente automatizado y correr sin supervisión.

julio 22, 2017

Cómo generar datos de prueba aleatorios de un archivo CSV

Se crea una nueva base de datos SQL y todo está configurado, pero necesitan algos datos para poder probarla. La pregunta sería: ¿qué fuente de datos utilizar para rellenar la base de datos de SQL Server con datos de prueba aleatorios?

Una fuente de datos comúnmente disponible es el archivo con formato CSV (valores separados por comas) que es ampliamente soportado. Entre sus usos más comunes está el mover datos tabulares entre programas que operan nativamente en formatos incompatibles (a menudo propietarios y/o indocumentados). Esto funciona porque muchos programas soportan alguna variación de CSV al menos como un formato de importación/exportación alternativo.

Se selecciona un archivo CSV que contiene los datos de prueba y luego se debe asignar e insertar los datos. ¿Cuáles son nuestras opciones?

febrero 23, 2017

Cómo rastrear consultas SQL Server ejecutadas

En este artículo, introduciremos una característica en ApexSQL Complete, que sigue la pista de consultas ejecutadas. ApexSQL Complete es un complemento de productividad para SSMS y Visual Studio que contiene características como SQL auto-complete, formato de SQL y más.

febrero 23, 2017

Recupere scripts SQL no grabados debido a un bloqueo de SQL Server Management Studio

Recuperar trabajo después de bloqueos de SQL Server Management Studio

Imagine una situación de trabajar en SSMS y súbitamente la electricidad se corta, el sistema se bloquea, SSMS se bloquea o su sesión de trabajo fue abruptamente terminada por cualquier otra razón, lo que causa la pérdida de trabajo no grabado en varios scripts SQL. En esta situación SSMS provee un diálogo para datos recuperados después de reiniciar:

febrero 23, 2017

Sincronizando bases de datos usando el registro de transacciones – Transvase del Registro de SQL Server

No importa cuán bien administrados están sus sistemas, los accidentes pueden ocurrir y potencialmente conducir a consecuencias desastrosas. Para asegurar que una solución de recuperación de desastres está disponible, siempre es bueno tener una copia de la base de datos primaria en otra instancia de SQL Server.

La primera manera de lograr esto es utilizar el transvase de Registros de SQL Server.

febrero 23, 2017

Cómo borrar de manera segura objetos de bases de datos SQL

Cuando se trata de borrar un objeto de la base de datos el cual tiene un objeto que depende de él, no se pueden causar problemas dado que no se permitirá borrarlo:

Drop failed for Table ‘HumanResources.Employee’. (Microsoft.SqlServer.Smo)
Could not drop object ‘HumanResources.Employee’ because it is referenced by a FOREIGN KEY constraint.

diciembre 24, 2016

Cómo codificar usuarios de bases de datos SQL Server con roles

Introducción

Una solicitud es recibida desde el equipo de desarrollo pidiendo copiar una de las bases de datos de producción al servidor DEV SQL para simular escenarios de prueba en tiempo real. Una vez que la copia de seguridad de la base de datos de producción es restaurada a la instancia DEV SQL, reemplazando la copia antigua, los antiguos usuarios de la base de datos DEV serán reemplazados por usuarios en línea. Pero aún necesitamos los antiguos inicios de sesión de la base de datos DEV para la conexión del sitio DEV.

agosto 23, 2016

Cómo cambiar el nombre de un objeto sin romper su base de datos SQL

Muy frecuentemente, el diseño inicial de la base de datos ya no concuerda con el criterio actual y los requerimientos. Por tanto es necesario alinearse periódicamente a lo que nuestras son necesidades y estándares actuales. Cuando se trabaja con una base de datos grande, cualquier idea de cambiar el nombre de uno o más objetos SQL puede ser un desafío real.

Cambiar un nombre de objeto es una operación simple y podría ser hecha fácilmente usando el procedimiento almacenado del sistema SP_RENAME o usando las sentencias RENAME y ALTER… RENAME para índices y desencadenadores.

noviembre 14, 2015

Cómo limpiar objetos no usados de una base de datos SQL Server

No es raro el caso donde un DBA hereda bases de datos SQL Server con muchos objetos SQL sin usar. Usando ApexSQL Clean, es fácil limpiar una base de datos SQL de estos objetos innecesarios y prevenir que los objetos extra tengan un impacto en el desarrollo ralentizándolo e incrementando el trabajo de mantenimiento (por ejemplo, todos los objetos no usado aún tienen que tener sus permisos establecidos, estar conforme a los estándares de código, etc.).

noviembre 14, 2015

Cómo reordenar scripts para evitar errores basados en dependencias

Tener una base de datos codificada a una carpeta de script o a un control de fuente permite usar estos scripts DDL para recrearla. De todos modos, puede que no vaya todo tan bien debido a algunas dependencias perdidas.

Cuando se crea un objeto de base de datos desde cero, los objetos necesarios son creados sobre la marcha. Los objetos que pueden estar atados en relaciones y restricciones que los hacen dependientes uno del otro.

noviembre 14, 2015

Cómo asegurar procedimientos almacenados contra inyecciones SQL

Aunque los procedimientos almacenados de SQL Server ayudan con la seguridad el código ocultando la implementación de lógica de negocios e incluso protegiendo contra algunos tipos de ataques de inyección SQL – primariamente aquellos que usan operadores como AND o OR para enviar comandos a un valor de parámetros de entrada válido, simplemente envolver el código en un procedimiento almacenado no significa que las aplicaciones, bases de datos y Servidores SQL están a salvo de todo tipo de ataques de inyección SQL. Así que, ¡cómo crear procedimientos almacenados a prueba de inyecciones SQL?

noviembre 14, 2015

Refactorización de código SQL – maneras de mejorar el desempeño de la base de datos (parte I) – Encapsular código como un procedimiento almacenado

El desempeño de la base de datos es un desafío para cada desarrollador y DBA. Incluso cuando algunas mejoras son hechas, siempre hay una pregunta – ¿hay algo más que se pueda hacer?

Puede haber algunas cosas. Algunas de las técnicas de mejoramiento de desempeño no están relacionadas con el código – una estrategia de indexación adecuada, añadir memoria, usar diferentes discos para archivos de datos, archivos de registros y copias de seguridad de bases de datos, usar discos más rápidos, optimizar el desempeño de tempdb.

noviembre 14, 2015

Transferir inicios de sesión SQL para usuarios con un gran número de inicios de sesión autenticados SQL

Los inicios de sesión SQL Server son las credenciales que permiten a los usuarios conectarse con la instancia del Motor de la Base de Datos. Los inicios de sesión SQL se distinguen basados en el tipo del método de autenticación: autenticación Windows, autenticación SQL Server, Certificados y Claves Asimétricas. Un inicio de sesión SQL puede ser mapeado a sólo un usuario en cada base de datos.

octubre 27, 2015

Cómo visualizar dependencias de objetos de bases de datos SQL

ApexSQL Search es un complemento gratis para SQL Server Management Studio y Visual Studio que, entre otras características, provee un diagrama de dependencias de base de datos.

La característica View Dependencies tiene la habilidad de visualizar todas las relaciones de los objetos de una base de datos SQL, incluyendo aquellos entre encriptados y objetos del sistema, objetos específicos SQL Server 2012 y objetos almacenados en bases de datos encriptadas con Encriptación de Datos Transparente (TDE, por sus siglas en inglés). Miremos más de cerca esta característica.

octubre 27, 2015

Compare esquemas de bases de datos SQL Server automáticamente

Es de conocimiento general que ejecutar cambios directamente a una base de datos en producción, sin efectuar pruebas en profundidad primero, debería evitarse.

Si hay suficientes recursos en el ambiente, habría al menos una instancia SQL Server de pruebas y otra de producción. De todos modos, eso introduce otro desafío. Cuando todo está configurado en la prueba y corre sin problemas y como se esperaba, ¿cómo puede ser aplicado fácilmente a la instancia de producción?

octubre 25, 2015