Archive for the ‘PowerShell’ Category

Obtener datos desde una web

octubre 14, 2018

En algunas ocasiones necesitaremos obtener datos que estén alojados en algún sitio o página web.

Power BI nos permite obtener los datos de una manera rápida y sencilla, solo debemos seguir unos pequeños pasos y podremos obtener los datos que necesitemos.

Luego de iniciar sesión en nuestro panel, daremos clic sobre el icono Obtener datos, esto desplegará una lista en donde se nos mostrarán las opciones más comunes. En esta lista seleccionaremos la opción Web.

BIDatosWeb

Luego haber clicado en Web aparecerá una ventana que nos solicitará la dirección URL de la cual deseamos obtener los datos.

Dentro de esta ventana existe un mini formulario que contiene un solo campo en el cual escribiremos o copiaremos la dirección de la página de la cual obtendremos los datos.

BIDatosWeb2.jpg

Para este ejemplo utilizaremos la página de Wikipedia https://es.wikipedia.org/wiki/Anexo:Entidades_federales_de_Venezuela_por_población,_superficie_y_densidad de la cual extraeremos los datos.

BIDatosWeb2A

Una vez hayamos ingresado la URL daremos clic en el botón Aceptar. Esto abrirá otra ventana para acceder al contenido de la página y nos solicitará que seleccionemos el nivel en el cual utilizar el tipo de acceso para el contenido web.

BIDatosWeb2B.jpg

Al seleccionar el nivel deseado daremos clic en el botón Conectar. Esto nos mostrará un mensaje indicándonos que se está estableciendo la conexión con la página.

BIDatosWeb2C.jpg

Luego de establecerse la conexión con el sitio web, aparecerá una nueva ventana Navegador que nos mostrará las tablas que posee el sitio y con las cuales podemos trabajar. Al seleccionar una tabla inmediatamente nos muestra una vista de los datos almacenados en ella en la pestaña Vista de tabla. Cuando hayamos seleccionado todas las tablas con las que deseamos trabajar presionamos el botón Cargar.

BIDatosWeb2D.jpg

Al dar clic en el botón cargar, comenzará todo el proceso en donde se creará una conexión al modelo de datos y se detectarán las relaciones de las tablas.

BIDatosWeb2E.jpg

BIDatosWeb2F

Al finalizar el proceso daremos clic en el icono Datos ubicado al lado izquierdo de nuestro panel para poder observar la tabla obtenida y sus datos.

BIDatosWeb2G.jpg

En la siguiente imagen podemos ver los datos originales que nos ofrece Wikipedia y compararlos con los que nos ha recogido Power BI.

BIDatosWeb2H.jpg

Como podemos observar comparando ambas imágenes, los datos son exactamente los mismos y mantienen el mismo orden incluyendo el mismo nombre de columnas.

Saludos!

Roberto E. Pozo Osorio

Instalar SQL Server en Linux Ubuntu

febrero 20, 2017

Hoy veremos como instalar Microsoft SQL Server en la versión de Software Libre Ubuntu 16.10

La instalación es realmente sencilla y fácil, sin embargo, hay que cumplir con ciertos requisitos Obligatorios:

  • Sistema operativo: Ubuntu 16.04 o Ubuntu 16.10
  • Memoria RAM: 3.25 GB

Es importante que nos aseguremos que nuestra versión de Ubuntu sea 16.06 o 16.10, si no contamos con esta versión NO podremos instalar SQL Server.

También es requisito si o si, es decir, obligatorio, tener 3.25GB de memoria en el equipo que vamos a instalar SQL Server, en caso de contar con menos de esa cantidad de memoria NO ES POSIBLE instalarlo.

sql_server_linux_01

Luego de comprobar que cumplimos con los requisitos mínimos exigidos, procederemos a el paso a paso para instalar SQL Server en Linux.

Primer paso:

Abrimos una consola y en ella escribimos la siguiente sentencia y presionamos la tecla Enter:

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Con esta sentencia importamos las claves del repositorio público GPG.

SQL_Server_Linux_02_A.jpg

Luego de que hemos importados las claves, procederemos a escribir la siguiente sentencia y presionamos nuevamente la tecla Enter:

curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list
 | sudo tee /etc/apt/sources.list.d/mssql-server.list

Esta sentencia es para registrar el repositorio de Ubuntu de Microsoft SQL Server.

SQL_Server_Linux_03.jpg

Una vez realizados estos dos pasos, procederemos a actualizar Ubuntu con privilegios sudo con el típico comando

sudo apt-get update.

SQL_Server_Linux_04.jpg

Luego haremos el llamado al paquete de instalación de SQL Server de la siguiente manera:

sudo apt-get install -y mssql-server

SQL_Server_Linux_05.jpg

Con esto ya hemos descargado, descomprimido e instalado los archivos de SQL Server necesarios para poder finalizar su configuración.

Ahora que ya hemos instalado SQL Server, el paso que debemos realizar para finalizar la configuración será ejecutar la siguiente sentencia:

sudo /opt/mssql/bin/mssql-conf setup

En este paso nos solicitará que aceptemos los términos de licencia, para lo cual deberemos escribir la palabra Yes.

SQL_Server_Linux_06.jpg

Una vez aceptados los términos de la licencia, se nos solicitará que ingresemos la contraseña para el usuario SA. Esta contraseña debe tener una longitud mínima de 8 caracteres y debe estar compuesta por letras mayúsculas, letras minúsculas, números y símbolos.

sql_server_linux_07

Una vez configurado nuestro SQL Server en Ubuntu procederemos a confirmar que nuestra instalación haya sido correcta por medio de la siguiente sentencia:

systemctl status mssql-server

Una vez ejecutada la sentencia superior nos mostrará toda la información del servicio en ejecución.

sql_server_linux_08

 

Con todos estos pasos, ya hemos instalado nuestro SQL Server en Ubuntu 16.10 y ya podremos comenzar a trabajar con el mismo.

Saludos!

Roberto Pozo

 

 

 

 

Instalar Power BI en Windows 10

noviembre 10, 2016

Una de las opciones que tenemos para poder trabajar con Power BI es que podemos instalarlo en Windows 10 como una aplicación más para así trabajar más cómodamente desde nuestro equipo de forma local sin necesidad de estarnos conectando a la nube.

Para poder descargar Power BI debemos ingresar a la página oficial del mismo y hacer clic en el botón «Comenzar gratis»

pbi-01.jpg

Luego de dar clic en el botón mencionado, nos llevará a una nueva página en donde nos mostrará dos opciones:

  • Descargar y
  • Registrase

En esta página haremos clic en la opción Descargar

pbi-02.jpg

Una vez presionado el botón Descargar se abrirá una ventana flotante con un formulario invitándonos a recibir información importante sobre sobre Power BI que incluye sugerencias y trucos que nos ayudarán a comenzar a utilizarlo rápidamente. También comenzará el proceso de descarga.

pbi-03

El archivo de instalación que descargaremos pesa aproximadamente 118 MB.

Una vez llenado el formulario y  haber dado clic en el botón Comenzar, nos dirigirá a una nueva página en donde podremos ver un video introductorio y conseguiremos tutoriales y datos de ejemplo para comenzar a entender mejor como trabajar con Power BI.

pbi-04.jpg

Luego de descargado el archivo de instalación, procederemos a instalar Power BI en nuestro equipo de trabajo. Para ello vamos a la carpeta en que hemos descargado el instalador (generalmente se encuentra en la carpeta Descargas de nuestro Windows 10) y damos doble clic sobre el para que se abra la pantalla del asistente de instalación.

pbi-05.jpg

Al ya tener el asistente abierto, daremos clic en el botón Next para que nos muestre la pantalla de los términos de licencia del producto, seleccionamos la casilla de verificación «I accept the terms in the License Agreement» y presionamos el botón Next.

pbi-06.jpg

Esto nos llevará a la pantalla en donde seleccionaremos el directorio en que se instalara el programa que por defecto es en el directorio C:\Program Files\Microsoft Power BI Desktop\ sin embargo, podemos dar clic en el botón Change para cambiar la ubicación del mismo.

pbi-07.jpg

Es recomendable utilizar el directorio por defecto para evitar conflictos, una vez establecido el directorio daremos clic nuevamente en el botón Next para que nos muestre la pantalla con las opciones de comenzar la instalación dando clic en el botón Install o si deseamos cambiar alguna configuración presionar el botón Back y con ello cambiar el directorio que hayamos seleccionado. En este caso vamos a presionar el botón Install.

pbi-08

Una vez pulsado el botón Install se mostrará una pantalla que nos preguntará si permitimos que el programa efectúe cambios en el sistema, a esa pregunta responderemos dando clic en el botón Aceptar y luego haber aceptado se comenzará con el proceso de instalación el cual solo dura unos pocos segundos.

pbi-09.jpg

Una vez ya finalizado el proceso, nos mostrará una ventana indicándonos (si todo ha salido bien) que hemos completado satisfactoriamente la instalación. En este momento podemos seleccionar que el programa se ejecute inmediatamente una vez cerrado el asistente o podemos desmarcar la casilla «Launch Microsoft Power BI Desktop» para solamente cerrr el asistente y ejecutar Power BI en otro momento.

pbi-10.jpg

Una vez finalizada la instalación podemos ya comenzar a utilizar nuestro Power BI completamente instalado en nuestro equipo.

pbi-11.jpg

Saludos!

Roberto Pozo

 

Instalando SSMS 2016 en Windows 10

octubre 31, 2016

Últimamente he recibido muchas preguntas acerca de como poder activar SSMS en SQL Server 2016, por ello he decidido crear este paso a paso para así poder hacer llegar esta información a mas personas que también la necesiten.

Cuando instalamos SQL Server 2016 en Windows 10 ya no encontramos al SQL Server Management Studio (SSMS) instalado por defecto.

Para poder utilizar nuestro tan apreciado SSMS luego de haber instalado SQL Server 2016, deberemos instalarlo aparte siguiendo los siguientes pasos:

En primer lugar, deberemos buscar en nuestra máquina (PC, Laptop, Servidor, etc) donde tengamos instalado SQL Server 2016 la herramienta SQL Server Installation Center.

ssms-01

Esto nos abrirá el centro de instalación de SQL Server 2016 y en el menú izquierdo daremos clic en Instalación y en ñas opciones que nos mostrará a la derecha haremos clic en Instalar Herramientas de administración de SQL Server.

ssms-02

Luego haber dado clic en la opción señalada anteriormente, se nos abrirá el navegar de internet (que generalmente es el navegador Microsoft Edge el que por defecto se abrirá) en la página de descarga de SQL Server Management Studio (SSMS).

ssms-03

En esta página daremos clic en Descargar SQL Server Management Studio (no se preocupen por el número de versión ya que la versión va cambiando con el tiempo) para que comience el proceso de descarga.

ssms-04

Cuando aparezca la ventana de opciones de la descarga, seleccionaremos guardar como y elegiremos el directorio que deseemos para almacenar el archivo de instalación SSMS que tiene un peso de entre 800 y 900 MB.

Una vez descargado el archivo de instalación SSMS-Setup procederemos a darle doble clic para comenzar con la instalación de nuestro tan apreciado SQL Server Management Studio.

ssms-05.jpg

Al aparecer la pantalla mostrada en la imagen anterior deberemos dar clic en Install para comenzar el proceso de instalación, esto hará que se descarguen algunos componentes necesarios para SQL Server así como ciertas actualizaciones necesarias para su correcto funcionamiento y compatibilidad.

ssms-06

Al finalizar el proceso de instalación, si no ha ocurrido ningún inconveniente, nos mostrará en la misma ventana que el proceso de instalación ha sido completado y el botón «Cancelar» cambiará a Cerrar, luego de esto, haremos clic en dicho botón para salir del asistente.

ssms-07.jpg

Ahora que ya hemos instalado nuestro SSMS es hora de ponernos a trabajar con el, para ello podemos buscarlo en la carpeta Microsoft SQL Server 2016 en el menú inicio de nuestro equipo.

ssms-08.jpg

Una vez ubicado el SSMS damos clic en su icono para ejecutarlo.

ssms-09.jpg

Siguiendo estos simples pasos ya podremos contar con SQL Server Management Studio para SQL Server 2016 en Windows 10 sin problemas.

Saludos!

Roberto Pozo

Backup & Restore con archivos.bat

septiembre 18, 2016

Luego de haber publicado algún tiempo atrás, un código de como crear un backup por medio de un archivo .bat, me solicitaron si podia enseñar algún código que mostrara como, aparte de hacer un backup, poder realizar un restore de ese mismo backup pero en otro servidor.

Para ello utilizaremos el mismo código del artículo anterior para que sea mas comprensible todo, así que, sin más preámbulos comencemos:

1> SQLCMD -S 192.168.2.120,1433 -U SQLBackup -P QWEasd123* 
2> -Q "BACKUP DATABASE AdventureWorks2012 
3> TO DISK = '\\192.168.2.120\respaldos\esta.bak' WITH INIT, 
4> NAME = N'Backup Automatico de database', STATS = 10" 
5> -o E:\esta\11.txt

El código mostrado arriba es el código que utilizamos para hacer el backup así que no lo explicaremos acá ya que este ha sido explicado anteriormente.

Por ello, vamos a pasar al código que nos interesa para poder hacer el RESTORE en otro servidor:

1> SQLCMD -S 192.168.2.125,1433 -U SQLBackup -P QWEasd123* 
2> -Q "RESTORE DATABASE Adventureworks2012 
3> FROM DISK = '\\192.168.2.120\respaldos\esta.bak' 
4> WITH MOVE 'AdventureWorks2012' 
5> TO 'E:\esta\AdventureWorks2012.mdf', 
6> MOVE 'AdventureWorks2012_log' 
7> TO 'E:\esta\AdventureWorks2012.ldf', REPLACE, STATS = 10; " 
8> -o E:\esta\22.txt

Este código al igual que el otro es bastante sencillo, solo debemos seguir los pasos establecidos y comprender lo que hace cada línea de código:

Línea 1: nos conectamos a nuestro servidor por medio de SQLCMD, establecemos la dirección IP de nuestro servidor al igual que el puerto de conexión que utiliza (Recordemos que el puerto de conexión por defecto es el 1433), luego por medio de -U establecemos quien es el usuario que se utiliza como usuario con privilegios de administración para crear la base de datos (en este ejemplo usamos al usuario SQLBackup), por último pero no menos importante con -P establecemos la contraseña del usuario SQLBackup para que pueda conectarse al servidor sin problemas.

-Q «RESTORE DATABASE: podemos fijarnos que esta línea comienza también con -Q pero en vez de ser «Backup» la sentencia es RESTORE, la cual va acompañada del nombre de la base de datos a restaurar.

FROM DISK:  especifica el directorio desde el cual vamos a buscar el backup de la base de datos realizado en el primer código.

WITH MOVE: la instrucción MOVE hace que se restauren los datos y el archivo de registro en las ubicaciones especificadas en la línea 5 TO ‘E:\esta\.

MOVE ‘AdventureWorks2012_log’: indica que se debe retaurar el archivo de registro «.log» en el directorio especificado en la línea 7 de la misma manera en que lo indicamos en las líneas 4 y 5.

Línea 7: indicamos el directorio explicado en el punto anterior, utilizamos la sentencia REPLACE para indicar que se deben reemplazar los datos antiguos por los nuevos que estamos restaurando y por último utilizamos la sentencia STATS para que nos indiquen el porcentaje de ejecución cada 10% secuencialmente.

-o E:\esta\22.txt: al igual que en el código del artículo anterior, indicamos que se cree un archivo de texto plano llamado 22.txt, donde almacenaremos la información de la ejecución de nuestro RESTORE, ya sea correcta o si ha existido alguna falla, nos lo indique en dicho archivo.

Al finalizar de crear el archivo 22.txt nos deberá mostrar la información de esta manera:

10 percent processed.
21 percent processed.
30 percent processed.
40 percent processed.
51 percent processed.
60 percent processed.
71 percent processed.
80 percent processed.
90 percent processed.
100 percent processed.
Processed 448 pages for database 'Adventureworks2012', 
file 'AdventureWorks2012' on file 1.
Processed 2 pages for database 'Adventureworks2012', 
file 'AdventureWorks2012_log' on file 1.
RESTORE DATABASE successfully processed 450 pages in 4.652 seconds (0.754 MB/sec).

Ahora; para que todo esto funcione, los dos fragmentos de código deberán estar dentro del mismo archivo con extensión .bat y ejecutarlo con privilegios de administrador.

Saludos!

Roberto Pozo

Backup SQL Server 2014 con archivos .bat

septiembre 7, 2016

Hace unos días, me preguntó un amigo si existía alguna forma de poder crear Backups de nuestras bases de datos de SQL Server 2014 de manera automática y luego de creado el backup obtener un archivo de formato plano con el resultado de la operación y que todo esto fuera realizado por medio de un archivo de extensión .bat.

Para poder lograr esto solo debemos seguir algunos sencillos pasos:

  • Abrir un bloc de notas: en este bloc de notas escribiremos el código necesario para convertirlo luego en un archivo de extensión .bat
  • Utilizar el SQLCMD para comunicarnos con el servidor de bases de datos.
  • Conocer el nombre del servidor y/o su dirección IP. En este ejemplo utilizaremos la dirección IP de nuestro SQL Server en lugar del nombre de instancia.

Código de ejemplo:

1> SQLCMD -S 192.168.2.120,1433 -U SQLBackup -P QWEasd123* 
2> -Q "BACKUP DATABASE AdventureWorks2012 
3> TO DISK = '\\192.168.2.120\respaldos\esta.bak' WITH INIT, 
4> NAME = N'Backup Automatico de database', STATS = 10" 
5> -o E:\esta\11.txt

Explicación del código de ejemplo. Línea 1, SQLCMD:

Como comentamos un poco más arriba debemos utilizar el SQLCMD para conectarnos a nuestro servidor.

-S 192.168.2.120, 1433 : corresponde al nombre de nuestra instancia y su respectivo puerto de conexión. Podemos utilizar el nombre del servidor y la instancia directamente, pero es mejor utilizar la dirección IP de cada instancia para evitar confusiones y/o choques entre los servidores, el puerto utilizado por defecto es el 1433 sin embargo este puede cambiar según las necesidad y configuración que haya realizado nuestro DBA.

-U SQLBackup: Corresponde al usuario que tiene los privilegios de poder realizar copias de seguridad, creación y escritura dentro de nuestro SQL Server, el usuario puede ser «sa» o cualquier otro que hayamos creado con los privilegios necesarios, en este ejemplo nuestro usuario es SQLBackup.

-P QWEasd123*: Pertenece a la contraseña que utiliza nuestra usuario SQLBackup para conectarse al servidor.

Líneas 2 hasta la 4 pertenecen a una sola sentencia que ocupa una sola línea, la cual trataremos de explicar lo mejor posible:

-Q «BACKUP DATABASE: Estamos indicando una consulta directa sobre el servidor y estamos estableciendo que debe hacer un Backup de la base de datos AdventureWorks, este nombre lo cambiaremos por el que corresponda a la base de datos que vamos a respaldar.

TO DISK = 192…. Indicamos la dirección física en donde queremos alojar el backup y establecemos el nombre que tendrá el respaldo al finalizar, en este caso el nombre de nuestro respaldo será «esta.bak«.

WITH INIT: especifica que se deben sobrescribir todos los conjuntos de copia de seguridad, pero conservando el encabezado de los medios.

NAME: especificamos un nombre para identificar el backup que estamos realizando, en este ejemplo lo hemos identificado como «Backup Automatico de database».

STATS = 10: para mostrarnos el porcentaje completado desde el umbral para informarnos del próximo intervalo, es decir cada 10 porciento cubierto nos indicará el siguiente.

Línea 5, -o E:\esta\11.txt: indicamos el directorio y el nombre del archivo mas su extension en la cual almacenaremos la información de los resultados de la operación de respaldo.

Ahora para finalizar solo necesitaremos guardar nuestro archivo del bloc de notas con la extensión .bat, para ello vamos al menú archivo, guardar como, escribir el nombre que le daremos a nuestro archivo y no olvidar colocarle la extensión .bat, en tipo seleccionar todos los archivos y por último damos clic en el botón guardar.

backupbat-01

Ahora para ejecutar nuestro archivo .bat para crear nuestros backups solo debemos seleccionarlo con el botón derecho de nuestro mouse y ejecutarlo como administrador.

Con nuestro archivo se ejecutará con los privilegios de administrador y creará nuestro backup «esta.bak» en el directorio establecido.

Saludos!

Roberto Pozo

 

SQL Transactions

julio 14, 2016

El otro día (costumbre muy venezolana de decirlo así cuando uno no se acuerda de la fecha exacta), estábamos hablando en la Universidad acerca de como se manejan las transacciones en SQL Server y utilizamos en la conversación el típico ejemplo de las cuentas bancarias.

Ahora vamos a explicar esa misma conversación pero con sus respectivos códigos para que sea más comprensible la forma en que se manejan las transacciones en SQL Server.

Para este tema debemos comenzar por definir que es una transacción… En pocas palabras, las transacciones se encargan de mantener la integridad de los datos almacenados dentro de nuestras bases de datos.

Una transacción es un grupo de comandos que cambian la data almacenada en una base de datos, y se asegura que todos los comandos se completen y finalicen con éxito, esto se conoce como COMMIT y en caso de existir alguna falla que no se ejecute ninguno de ellos.

Si alguno de los comandos falla, todos los demás comandos fallarán y por ende ningún dato será modificado en la base de datos, esto se conoce como ROLLBACK.

Bien, ya definido a grosso modo lo que son las transacciones vamos a ver el código y lo explicaremos para comprender mejor esa definición.

Toda transacción comienza con BEGIN TRANSACTION, esto es el indicativo de que se trata de una transacción y está comenzando el proceso de la misma.

Luego de esta primera línea se agrega una segunda con la sentencia T-SQL que deseamos sea ejecutada.

Posteriormente se escribe la función COMMIT TRANSACTION para indicar que finaliza la transacción y si todo ha salido bien se almacenen los datos perdurablemente, caso contrario recurrimos al ROLLBACK TRANSACTION para deshacer cualquier cambio, es decir:

Supongamos que tenemos varias cuentas bancarias (ahora sí estamos hablando del ejemplo comentado anteriormente), Antonio y Claudio son dos amigos que tienen cuenta bancaria en el mismo banco y Claudio le pide prestado a Antonio por medio de una transacción la cantidad de 1250 BsF. (pueden ser bolívares, pesos, marcos, libras, quetzales, rupias, etc… Eso queda al gusto de ustedes el tipo de moneda jejeje).

transacciones-01.jpg

El banco debe asegurarse de restarle a Antonio los 1250 de su cuenta y abonarlos a la cuenta de Claudio, en caso contrario, deshacer la transacción y devolverle los 1250 a Antonio, esto lo hace por medio del siguiente código:

BEGIN TRY
     BEGIN TRANSACTION
          UPDATE cuentas SET balance = balance - 1250 WHERE nombreCliente = 'Antonio';
          UPDATE cuentas SET balance = balance + 1250 WHERE nombreCliente = 'Claudio';
     COMMIT TRANSACTION  
     PRINT 'Transacción completada'
END TRY
BEGIN CATCH
     ROLLBACK TRANSACTION
     PRINT 'Transacción cancelada'
END CATCH

El resultado es el siguiente:

transacciones-02

transacciones-03

Revisando el código notamos lo siguiente:

BEGIN TRY con esto estamos haciendo la prueba de errores, es decir, indicamos que ejecute todo el script que hay dentro de BEGIN TRY hasta END TRY, si no ha surgido ningún problema en ninguno de los dos UPDATE entonces lanza el COMMIT e imprime en pantalla el mensaje, como se puede observar en la imagen superior y al hacer un select podemos notar los cambios de balance en cada una de las cuentas.

Si hubiera existido algún error o falla en la transacción entonces se lanzaría el CATCH y por ende se dispararía el ROLLBACK y su respectivo mensaje.

Ahora generaremos un error apropósito para ver como funciona el ROLLBACK. Lo primero que haremos es suponer el caso siguiente:

Claudio le pide al banco que devuelva los 1250 a Antonio y que al mismo tiempo le abone 250 para pagarle un total de 1500 como agradecimiento del favor que Antonio le hizo.

El banco sin embargo, en vez de enviarle el dinero a Antonio (por error de dedo) coloca en el nombre del cliente el número de cuenta, esto provocaría, si no existieran los ROLLBACK, que ambos (Claudio y Antonio) perdieran el dinero.

Veamos entonces el nuevo código y su funcionamiento para ver que sucede:

BEGIN TRY
     BEGIN TRANSACTION
          UPDATE cuentas SET balance = balance + 1250 WHERE nombreCliente = 'Claudio';
          UPDATE cuentas SET balance = balance - 1250 WHERE nombreCliente = 1234;
     COMMIT TRANSACTION
     PRINT 'Transacción completada'
END TRY
BEGIN CATCH
     ROLLBACK TRANSACTION
     PRINT 'Transacción cancelada'
END CATCH

transacciones-04transacciones-05

Como podemos observar, la primera transacción se efectúa, sin embargo, la segunda falla haciendo que se dispare el ROLLBACK y su respectivo mensaje. Esto origina que la primera transacción sea deshecha y los datos queden sin modificación alguna.

Saludos!

Roberto Pozo

Comprobar y configurar protección de páginas

junio 13, 2016

Cuando estamos revisando las páginas de nuestras bases de datos, debemos estar pendientes de comprobar que la configuración de protección de páginas esté bien y que sea correcta.

Muchas veces, cuando creamos una base de datos no nos preocupamos por revisar su condición y eso nos puede ocasionar que si falla la protección de páginas podamos tener problemas mayores.

La opción PAGE_VERIFY CHECKSUM de la base de datos nos puede ayudar a detectar problemas de coherencia de la base de datos con la ruta de entrada / salida  (E / S) del sistema. por eso es muy importante estar siempre pendiente que en las opciones de recuperación el valor de Page Verify sea CHECKSUM.

page_verify-01.jpg

Esto lo podemos revisar por medio de nuestro SQL Server Management Studio seleccionando con un clic derecho la base de datos que queremos comprobar, luego haciendo clic en Propiedades y finalmente daremos clic en la página Opciones.

La otra manera y mas recomendable para poder comprobar el status de nuestras páginas es por medio del siguiente código:

SELECT
 [page_verify_option],
 [page_verify_option_desc]
FROM
 sys.databases
WHERE
 [name] = N'Pruebas';
GO

Donde; por medio de la sentencia SELECT solicitamos la opción de verificación de páginas y su descripción respectivamente, luego indicamos que esta información la obtendremos desde de la información existente en sys.databases y por último establecemos la condición WHERE para indicar el nombre de la base de datos a la que queremos comprobar su estatus (en este ejemplo sería la base de datos prueba).

page_verify-02.jpg

Pero, y si nos encontramos con que nuestra base de datos no está en CHECKSUM? Es algo que podemos acomodar rápidamente con unas simples líneas de código T-SQL:

ALTER DATABASE [Pruebas]

SET PAGE_VERIFY CHECKSUM

GO

Expliquemos cada una de estas líneas:

  • Línea 1: Indicamos el nombre de la base de datos que debemos acomodar
  • Línea 2: Establecemos que el valor de la página de verificación debe ser CHECKSUM
  • Línea 3: Ejecutamos la sentencia.

Como podemos observar, el comprobar y configurar la protección de las páginas es algo realmente sencillo.

Saludos!

Roberto Pozo

SQL Server Row_number

junio 9, 2016

En algunas ocasiones, por esas ciertas condiciones extrañas que pasan en nuestros trabajos como administradores de datos, debemos enumerar ciertos datos que tengamos almacenados en nuestras bases de datos.

Para ello podemos valernos de la función ROW_NUMBER() que nos permitirá  sin mucho esfuerzo enumerar las filas que tengamos almacenadas.

Para este ejemplo hemos creado una base de datos llamada Pruebas y en ella hemos creado una tabla pedidos;

row_number-01.jpg

Al hacer una consulta estándar a esta tabla, obtendremos todos los datos almacenados en ella sin obtener todavía una numeración:

row_number-02.jpg

Lo que deseamos hacer es que se enumeren las veces que se lista el código de un cliente, que en este caso están en la columna idcliente, pero que al momento de listar otro cliente la numeración comience desde el número uno (1) nuevamente con ese nuevo cliente y así sucesivamente.

Ahora para poder enumerar las filas, usaremos la función ROW_NUMBER() de la siguiente manera dentro de nuestra sentencia:

SELECT idcliente, ROW_NUMBER() over (partition by idcliente order by idcliente) FROM pedidos;

Ya que hemos visto como es la estructura de la sentencia vamos a explicarla para que se comprenda mejor la misma.

Al establecerse la función ROW_NUMBER() ésta debe ir acompañada seguidamente de una instrucción OVER en la cual estableceremos sobre que campo queremos que se haga la partición del conteo que en este ejemplo es en la columna idcliente y debe ir acompañado por ORDER BY que es la misma columna en que se realiza la enumeración.

Al ejecutar nuestra sentencia obtendremos el siguiente resultado:

row_number-03.jpg

Como podemos observar en la imagen anterior ahora todos los códigos de los clientes se encuentran numerados y al comenzar un nuevo código vuelve a comenzar la secuencia de enumeración.

Saludos!

Roberto Pozo

Conexión remota Azure SQL Database

May 10, 2016

En algunas ocasiones necesitaremos conectarnos a Azure SQL Database de manera remota, para ello deberemos seguir ciertos pasos necesarios para lograr establecer la conexión entre Azure y SQL Server Management Studio (SSMS).

Al ingresar al portal de Azure buscaremos el menú lateral y daremos clic en SQL Database.

remote_azuredb01

Se abrirá la página que nos muestra todas las bases de datos que hayamos creado en nuestra cuenta. Dentro de esta página seleccionaremos la base de datos a la que deseamos crear la conexión remota dando clic en ella, esto nos mostrará la información general de nuestra base de datos. Buscaremos «Nombre del servidor» y daremos clic en el enlace que aparece debajo.

remote_azuredb02

Esto desplegará otra página que nos mostrará la información de nuestro servidor de bases de datos, buscaremos dentro de esta página «Firewall» y daremos clic en «Mostrar configuración del firewall».

remote_azuredb03

Una vez abierta la nueva página configuración de firewall deberemos fijarnos que la opción «Permitir el acceso a servicios de Azure» esté como activado.

remote_azuredb04

Buscamos la Dirección IP de cliente que se encuentra un poco mas abajo en esa misma página y observamos el IP que nos muestra, es importante fijarse bien en esta dirección IP ya que ella es la que nos va a indicar los patrones de acceso  por medio de las conexiones IP.

remote_azuredb05ahora procederemos a rellenar los siguientes campos:

  • Nombre de regla: colocaremos un nombre para identificar la regla que vamos a crear, para este ejemplo se le ha colocado ConexionRemota.
  • IP Inicial: debido a que la IP de cliente que se nos ha asignado es la 190.199.46.43, en este campo colocaremos como IP Inicial los valores 190.0.0.1.
  • IP Final: en este campo escribiremos 190.255.255.255.

Al finalizar de llenar los campos hacemos clic en el botón Guardar ubicado en la parte superior.

remote_azuredb06

Debido a que estas direcciones IP han sido creadas para este servidor de bases de datos en particular, es probable que la dirección que les aparezca a ustedes sea distinta, sin embargo acá lo importante es observar el rango de valores a ingresar en los campos.

Por ejemplo: si la IP cliente que les asignaran  a ustedes fuera 193.23.45.134, los rangos serian para IP Inicial 193.0.0.1 | IP Final 193.255.255.255

Si todo ha salido bien y no se ha producido ningún problema, aparecerá un mensaje en pantalla indicándonos que las reglas del firewall han sido actualizadas correctamente.

remote_azuredb07Ahora simplemente damos clic en el botón Aceptar.

Con estos pasos ya hemos configurado nuestro firewall en Azure para poder conectarnos a nuestra Azure SQL Database remotamente. Ahora veamos los pasos para poder realmente conectarnos a nuestra Azure SQL Database desde SQL Server Management Studio.

Como bien recordaremos, en la página información general de nuestra base de datos aparece el nombre del servidor, anteriormente habíamos dado clic en ese nombre, sin embargo, ahora notemos que justo al lado derecho aparece un icono copiar.

Daremos clic en el icono copiar para que se copie la dirección de nuestro servidor en el portapapeles.

remote_azuredb08Una vez copiada la dirección de nuestro servidor en el portapapeles procederemos a abrir nuestro SQL Server Management Studio.

Cuando aparezca la ventana de conexión al servidor ingresaremos los siguientes datos:

  • Tipo de servidor: Motor de bases de datos
  • Nombre del servidor: copiaremos la dirección de nuestro servidor en azure, que para este ejemplo es; rpozo.database.windows.net, el nombre de servidor de ustedes será el que hayan escogido al momento de su creación.
  • Autenticación: Autenticación SQL Server.
  • Login: acá colocaremos el nombre del usuario administrador de nuestra Azure SQL Database, para este ejemplo se ha creado el usuario rpozo.
  • Contraseña: escribiremos la contraseña asignada al usuario administrador, en este ejemplo es la contraseña que se le asignó al usuario rpozo.

remote_azuredb09

Luego de haber completado los campos, daremos clic en el botón Conectar para poder conectarnos a nuestra Azure SQL Database de forma remota a través de nuestro SQL Server Management Studio.

Si todo ha sido correcto, dentro de unos instantes estaremos conectados a nuestra base de datos y estaremos listos para poder trabajar con ella.

remote_azuredb10

Si necesitan conocer más acerca de como crear nuestras Azure SQL Database los invito a revisar el paso a paso Creando Azure SQL Database dentro de este mismo blog.

Saludos!

Roberto Pozo