miércoles, 21 de octubre de 2020

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.

martes, 13 de octubre de 2020

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

lunes, 31 de agosto de 2020

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.

domingo, 23 de agosto de 2020

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.

martes, 30 de junio de 2020

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:

sábado, 20 de junio de 2020

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.

domingo, 7 de junio de 2020

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.

viernes, 29 de mayo de 2020

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.

viernes, 22 de mayo de 2020

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.

domingo, 10 de mayo de 2020

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.

lunes, 4 de mayo de 2020

sábado, 2 de mayo de 2020

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

miércoles, 29 de abril de 2020

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.

viernes, 17 de abril de 2020

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.

martes, 7 de abril de 2020

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:

sábado, 14 de marzo de 2020

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

viernes, 13 de marzo de 2020

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.

jueves, 27 de febrero de 2020

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

viernes, 7 de febrero de 2020

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.'.


sábado, 1 de febrero de 2020

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:

lunes, 6 de enero de 2020

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.

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 s...