¿Qué es PostgreSQL y cuales son sus características?

 Buenas tardes queridos lectores, vamos a seguir la misma tónica del blog, subir cosas de interés, la mayoría de las cosas son cosas de SQL SERVER un poco avanzado, que tiene que ver más con la administración, tenemos también dentro de este blog, artículos de MySQL Server o lo que es lo mismo MariaDB, sin embargo, no tenemos nada de PostgreSQL, así que vamos a aprender un poco de este gestor de código libre. Pero comenzaremos con una pregunta básica:


Estados de una base de datos SQL SERVER

 Una base de datos siempre se encuentra en un estado específico. Esos estados pueden ser ONLINE, OFFLINE, SUSPECT, etc. Se puede comprobar el estado de la base de datos, mediante alguna sentencias T-SQL, y también mediante entorno gráfico.


Secuencias en SQL SERVER

Buenos días queridos lectores, el día de hoy veremos como crear secuencias en SQL SERVER, pero primero tenemos que responder la pregunta ¿Qué es secuencia?, todos entendemos el concepto de secuencia, pero a la hora de definirlo, ahí surgen los problemas


¿Qué es una secuencia?


Al hablar de secuencia en base de datos, debemos retomar el concepto matemático de secuencia.

Para las matemáticas una secuencia o una sucesión es un grupo de números o de otros elementos matemáticos que forman un conjunto ordenado. Un ejemplo de secuencia matemática es la sucesión de números impares, que resulta infinita: 1, 3, 5, 7, 9…

Ejecutar la misma consulta a todas las bases de Datos SQL SERVER

 En ocasiones necesitamos realizar el mismo query en todas las bases de datos de un servidor. Imaginemos un servidor que tiene muchas bases de datos, cada base de datos es una sucursal, y nos gustaría saber, en que base de datos hay empleados dados de alta y en cual no, esto para saber que base de datos sobra y poderla borrar, o para lo que se les ocurra. 

Cambiar nombre a columna de tabla SQL SERVER

En ocasiones es necesario cambiar el nombre de una columna en una tabla de base de datos SQL SERVER, ya sea porque nos equivocamos en el nombre y hasta ahora nos dimos cuenta, o, por funcionalidad misma del programa. Es lógico pensar que ese cambio se realice con una sentencia ALTER, sin embargo, para este caso no es así, existe un stored procedure del sistema, que nos permite realizar ésta acción, pero vamos a pasar a lo interesante y a lo que nos
gusta que es hacerlo.

Desactivar llaves foráneas en SQL SERVER

En algunos casos, sobre todo en bases de datos de prueba, es necesario desactivar las restricciones de alguna tabla para poder realizar algunas pruebas, y, aunque las restricciones nos sirven precisamente para guardar la integridad de la información, habrá algunos casos especiales en que necesitemos brincarnos la protección.

LOG Shipping (Transvase de Registros) en SQL SERVER

 Log Shipping es una técnica de alta disponibilidad y recuperación de desastres que nos permitirá, restaurar una base de datos almacenada en otra instancia con el log de transacciones de la primera, de manera que siempre existan dos bases de datos, relativamente iguales, no confundir con las bases de espejo, ya que esa es una técnica distinta con características distintas.

No se puede borrar usuario en una base de datos

 Buenas tardes queridos lectores, feliz día de muertos, el día de hoy les mostraré como borrar un usuario de la base de datos que se resiste a ser eliminado.

Los escenarios pueden ser diversos, pero en el escenario que a mi me sucedió fue que restaure una base de datos en otro servidor, lo que me ocasionó usuarios huérfanos, por lo cual, me disponía a borrar y volver a crear

Auditoria en SQL SERVER

 Buenas tardes queridos lectores, el día de hoy les traigo la manera de realizar una auditoria en SQL SERVER, imaginemos que hay datos que se borran, y nadie sabe quien fue, y obviamente el culpable aventará la piedra y esconderá la mano, pues bien, con este método sabremos quien fue el responsable de que los datos se borraran, así que acompáñenme a revisar este post.

Programas para MS-DOS

 Buenas tardes queridos lectores, hace algún tiempo, me dio nostalgia por los años de infancia y adolescencia, donde lo que se usaba en las computadoras era MS-DOS, después vino Windows 3.1, Windows 95 y Windows 98, pero aún así, MS-Dos seguía siendo el rey, con la llegada de los sistemas de 32 y 64 bits, los antiguos programas que funcionaban bajo la plataforma de consola dejaron de funcionar y así se fueron mucho de los juegos que ahora añoramos y extrañamos, así que me metí al internet para descargar y usar esos juegos y programas que me enseñaron a usar la computadora hace muchos ayeres. En la lista que les traigo, hay juegos, como programas o utilerias. Espero sea de su agrado

Code Snippets en el Management Studio de SQL Server

Buenas noches queridos lectores, el día de hoy hablaremos de los snippets, los que son programadores, lo conocen bastante bien, pues ayuda a ahorrarnos código, ya que son atajos que existen para crear un fragmento de código determinado y bien definido. Los snippets aparecieron para visual Studio 2005, pero después el Management Studio de SQL también permitió crearlos.

Vamos a observar algunos snippets que ya vienen instalados predeterminadamente en Management Studio y como utilizarlos.

Para utilizar los snippets, debemos presionar las teclas Ctrl + K + S o X, depende lo que queramos hacer, ya que existen dos tipos de snippets. Primero presionaremos Ctrl + K + X para crear un fragmento de código.

Partición de Tablas en SQL SERVER

Buenas noches queridos lectores, el día de hoy hablaremos sobre el particionado de tablas en SQL SERVER. Antes que nada, debo decirles que el particionamiento esta disponible a partir de SQL SERVER 2005, aunque su funcionalidad mejoró mucho en 2008.

A muchos de nosotros nos ha tocado, como DBA, o como encargado de sistemas que nos dicen cosas como "Esta muy lento el sistema", en realidad lo que esta lento es la Base de Datos, ya sea porque tienen consultas mal hechas o por la falta de índices, cuando ya optimizamos la consulta y también creamos índices, pero aún sigue estando lento, puede ser debido a la cantidad de información que existe y para eso sirve el particionado. Imaginemos, que en nuestro lugar de trabajo, hay una tabla llamada Facturas, y ahí hay millones de registros, cuando lanzamos una consulta a esa tabla, por más índices que ésta tenga, la cantidad de información hará que la consulta siga lenta, así que tendremos que buscar los criterios para particionar, podremos particionar por cliente, por ejemplo, así las facturas de cada clientes estarán en una partición y solamente el sistema de BD buscará en la partición correspondiente para cada cliente, también podemos particionar por rangos de fechas, o incluso por rangos de productos, todo esto dependiendo de que es lo que queremos hacer.

Roles en SQL SERVER

Buenas tardes queridos lectores, ya poco a poco va pasando la cuarentena y empiezan a abrir todo, el día de hoy, les traigo el post de los ROLES en SQL SERVER, una manera más, fácil, práctica y correcta de administrar los permisos de las bases de Datos. Pero como siempre, pasemos a la práctica que es lo que nos gusta y como aprendemos

Los roles sirven para administrar con facilidad los permisos de bases de datos.

Existen dos tipos de roles: los roles de usuario y los roles de servidor, en los roles de servidor, no entraremos en detalles, basta con mencionar que dentro de los roles de servidor, existe un rol llamado sysadmin, que nos proporcionará el control total del servidor para un login especifico, es decir seremos un super usuario (sa). Los roles de base de datos, que son los creados por el usuario también se dividen en dos:

Ejemplos prácticos de Índices

Buenas tardes queridos lectores, el día de hoy realizaremos algunos ejemplos prácticos de creación de índices, pero no solo veremos la creación, sino también, como encontrar los índices faltantes, en base al plan de ejecución, primero veremos teoría y pasaremos a ejemplos prácticos. Para este ejemplo contamos con una base de datos de 7 millones de registros, pensando que sería una tabla sumamente transaccional, pero entremos en materia.



Índice: Una explicación común es que un índice sirve para "acelerar" las consultas SQL SERVER, lo cual básicamente es correcto, para eso sirve, pero veremos detalles técnicos mas específicos

Un índice es una estructura de disco asociada con una tabla o una vista que acelera la recuperación de filas de la tabla o de la vista. Un índice contiene claves generadas a partir de una o varias columnas de la tabla o la vista. Dichas claves están almacenadas en una estructura (árbol b) que permite que SQL Server busque de forma rápida y eficiente la fila o filas asociadas a los valores de cada clave. Esta es la explicación según Microsoft.

Logins y usuarios (seguridad) en SQL SERVER

Buenas noches queridos lectores y nuevamente Feliz Cuarentena, seguimos encerrados y así será al parecer al menos otro mes. El día de hoy hablaremos sobre los logins y los usuarios, o sea, la seguridad en SQL SERVER, se tiende a confundir login y usuario como el mimo término, y si bien son similares, si tienen sus diferencias, además haremos algunos ejemplos para que quede más claro, también veremos algo de teoría para tener el fundamento. Pues bien comencemos.


Logins o inicios de sesión: Es la autenticación al motor de Base de Datos SQL SERVER, los inicios de sesión están asociados a un usuario a nivel de base de datos, aunque se tenga el permiso en el login, este podrá acceder al motor, pero no a la base de datos que queremos.

Usuarios: Es la autenticación a la base de Datos como tal, todos los usuarios deben estar enlazados un con login, si existen usuarios sin enlazar a un login, estos se llamarán usuarios huérfanos, que solo ocupan espacio, pero no tienen utilidad, si se encuentran con éstos usuarios será mejor borrarlos.

Crear un JOB (Tarea Automática) en SQL SERVER

Buenas noches queridos lectores, el día de hoy les explicare los JOBS en SQL SERVER, un post que tenía tiempo queriendo hacer, pero no había tenido la oportunidad, pero comencemos pues con un poco de teoría.



Un JOB en base de datos sería lo que en Windows una tarea programada, pero con algunas caracteristicas especiales. Un Job son un bloque de instrucciones, definidos en pasos, que se ejecutan cada cierto tiempo. Cada paso tiene un numero ilimitado de instrucciones, así como podemos definir el flujo, es decir, si el paso se realiza correctamente, ir al siguiente paso, ir a un paso definido o salir del JOB. Puede resultar un poco complejo una explicación teórica, por lo cual vamos a la práctica que es lo que nos gusta y como aprendemos.

Conectar a una base de datos SQL SERVER de otro servidor

Buenas noches y feliz cuarentena queridos lectores, el día de hoy les mostraré como conectarse a una base de datos SQL SERVER que se encuentra en otro servidor.

Este tema es bastante común, todos en algún momento nos hemos topado con este problema, y a veces ya no nos acordamos que fue lo que hicimos para resolverlo anteriormente, pues bien, aquí les traigo la solución.

Alertas y Operadores en SQL Server

Buenos días queridos lectores en este día de las madres de cuarentena, hoy les quiero mostrar la utilidad y el uso de los operadores y de las alertas en SQL SERVER.

Un operador define información de contacto para las personas responsables del mantenimiento de una o varias instancias de SQL SERVER. La responsabilidad de operador puede recaer en una sola persona o en varias. Un operador no contiene información de seguridad y tampoco contiene seguridad en si mismo.

Una alerta es una respuesta automática a un evento específico . Un evento puede ser el inicio de un trabajo (JOB) o que los recursos del sistema alcancen un umbral específico. Se deben configurar las condiciones en las que se genera una alerta.

Enviar mail desde SQL SERVER

Buenas tardes queridos lectores, el día de hoy hablaremos sobre el envío de correo desde SQL SERVER, en posts anteriores les mostré como Configurar correo de GMAIL y OUTLOOK en SQL SERVER, pues el día de hoy les mostraré como enviar el correo.

Configurar correo de GMAIL y OUTLOOK en SQL SERVER

Buenas noches queridos lectores, el día de hoy veremos primeramente como configurar el correo en SQL SERVER y posteriormente como enviar ese mismo correo.

En ocasiones, sobre todo cuando trabajamos con JOB (es un tema que tengo pendiente por postear), es útil el envío del correo, para informarnos que el job falló, o que el job se ejecuto correctamente según lo deseemos, o simplemente que exista un procedimiento o función que envíe un correo porque así lo deseamos, pues bien, existe la posibilidad de enviar correos de SQL SERVER, pero tenemos que configurarlo antes. Pues bien, pasemos a la práctica que es lo que nos gusta y como aprendemos

SCHEMAS (Esquemas) en SQL SERVER

Buenas noches queridos lectores, el día de hoy veremos como trabajar con esquemas en SQL SERVER lo que se conoce como SCHEMA. Vamos a empezar definiendo lo que son esquemas, y después pasaremos a la práctica.

Un esquema es un espacio de nombres de la base de datos, que nos permitirá agrupar los objetos, ya sea por equipo de desarrollo o para poder gestionar mejor sus permisos, no es tema de hoy lo permisos a los esquemas, solamente veremos para que sirven y como crearlos.

Cambiar el nombre lógico de una base de Datos

Buenos días, seguimos en cuarentena queridos lectores. El día de hoy veremos cómo cambiar el nombre lógico a una base de datos. Así es, el nombre lógico es distinto al nombre físico y el día de hoy veremos cómo cambiarlo.

El nombre físico de una base de datos es el nombre propiamente, el nombre que vemos en el management studio, aquél que colocamos seguido del comando USE, ese es el nombre físico, sin embargo, una base de datos está formada por diversos archivos, por lo menos dos (DATA y LOG), pero podrían ser más, incluso podrían haber varios archivos de data y varios archivos de LOG, cada uno de esos archivos tiene un nombre y éstos forman el nombre lógico de una base de datos. Pero veamos los ejemplos que es como aprendemos y lo que nos gusta.

Validar la existencia de un archivo o carpeta en SQL SERVER

Buenas tardes, y feliz cuarentena queridos lectores, esta ocasión les mostraré como validar la existencia de algún archivo o carpeta en SQL SERVER. Para eso haremos uso del comando: xp_fileexist.

El uso de este comando no viene en la documentación oficial de SQL SERVER, pero aquí les daremos algunos ejemplos de su uso. Básicamente lleva tres partes. La primera parte es el comando, la segunda es el nombre del archivo a buscar y la tercera parte es la variable donde guardaremos el resultado. Vamos a realizar un pequeño ejemplo:

Reiniciar valor de un campo IDENTITY - SQL SERVER

Buenas tardes queridos lectores, antes que nada, hay que dejar en claro lo que es un campo identity en base de datos

El campo identity en la propiedad de una columna en una tabla de base de datos, que tiene como característica el incremento automático del valor, especificado al diseñar la tabla, si no se asigna un valor, predeterminadamente aumentará de uno en uno. 

Existen algunas restricciones para poder crear un campo identity y son las siguientes:

  • El tipo de datos siempre tiene que se entero (int).
  • La identidad no garantiza la unicidad del valor, eso tiene que hacerlo la primary key, por lo que se recomienda que la identidad también sea primary key.
  • Solamente puede existir un campo IDENTITY por tabla

No se puede abrir la base de datos predeterminada del usuario - SQL SERVER

Buenas tardes queridos lectores, el día de hoy les ayudaré a solucionar un error común que aparece al querer conectarnos a una instancia No se puede abrir la base de datos predeterminada del usuario.

Este error es común cuando la base de datos predeterminada del LOGIN esta dañada o se ha movido. Consideremos el siguiente escenario:

Tenemos un servidor con varias bases de datos, y los logins tienen la misma base de datos, pensemos que la base de datos se llama Puebla, que es nuestra sucursal. Un buen día se decide migrar las bases de datos a otro servidor y comenzamos por Puebla, así que migramos y eliminamos del servidor antiguo esa base de datos. Lo que pasará es que el motor ya no podrá conectarse a SQL con ese login, debido a que la base de datos que era predeterminada ya no está disponible.

Cambiar el nombre de una computadora en la instancia SQL SERVER

En ocasiones, por no decir casi siempre, instalamos una instancia de SQL SERVER en una computadora fuera de dominio, para, posteriormente agregarla al dominio una vez instalada y configurada, sin embargo, al ingresarla al dominio el nombre de la computadora cambia para temas de la instancia y es necesario eliminar el nombre viejo para agregarla al nuevo. También se sigue el mismo procedimiento si el nombre de la computadora cambia, aunque no sea por el dominio

mensaje 'El administrador de transacción ha deshabilitado su soporte para transacciones de red o remotas.'

Cuando agregamos un servidor vinculado, mejor conocido como linked server, es importante configurarlo de manera correcta, como por ejemplo, permitir o denegar acceso a datos entre otras cosas, una de ellas es el soporte para transacciones remotas o lo que se conoce como MSDTC (Microsoft Distributed Transaction Coordinator).

El error que nos muestra cuando no esta configurado el DTC es el siguiente:


mensaje 'El administrador de transacción ha deshabilitado su soporte para transacciones de red o remotas.'.


SQL SERVER - Base de datos ya esta abierta y solo puede tener un usuario a la vez

En algunas ocasiones nos encontramos con un error que nos indica que una base de datos ya esta abierta y solo puede tener un usuario al mismo tiempo, esto se debe a que la base de datos fue configurada para ser Single User, el proceso puede parecer muy sencillo, simplemente cerrar la sesión del usuario que tiene abierta la base de datos, pero esto no siempre es así, hay procesos, como algunos jobs, índices u otros procesos que nos hará complicada la tarea, para eso tenemos este ejemplo:

Base de Datos SQL SERVER modo Sospechoso (SUSPECT)

En ocasiones, como DBA's nos encontramos con la sorpresa de que una de nuestras bases de datos aparecen con un símbolo amarillo con la leyenda Sospechoso o Suspect, lo mejor para este caso es tener un plan de respaldos y restaurar, sin embargo, muchas ocasiones puede solucionarse sin mayores problemas y aquí les daremos la solución. Comenzaremos por mencionar las causas de que una base de datos sea marcada como Sospechosa.


¿Que origina que una base de datos pase a modo sospechoso?

Pues bien, una base de datos puede pasar a modo SOSPECHOSO o SUSPECT por varias razones.

Featured Post

Como saber la versión de SQL que tengo

 Buenas tardes queridos lectores, el día de hoy les traigo un post muy básico, pero útil en determinadas circunstancias, cuando queremos sab...