Jugando con TRY .. CATCH en #sqlserver

Ya hemos visto la teoría en …..

TRY .. CATCH en #sqlserver

Vamos con la práctica. Primero vamos a ver uno completito y de ahí vamos a ver como funciona.

Partimos de:

Captura

Ahora vamos a ver distintos errores que nos ir dando. Este código lo tenéis en http://1drv.ms/1Jpucux

Captura

Declaramos una variable y hacemos operaciones matemáticas con ella.

Captura

El clásico ejemplo de dividir por cero.

Captura

Aquí nos da los errores  propiamente los errores de try catch y  el nombre de objeto no valido.

Captura

Tendríamos que poner el objecto bien y por lo tanto ya no saldría el error. Este SQL Server es muy listo, detecta el error antes de ejecutarlo subrayando en rojo.

Sinónimos en #sqlserver

Otro epígrafe peque dentro de la 70-461, pero lo daremos como dios manda.

Los sinónimos proporcionan un método para crear un enlace o alias  a un objeto almacenado en la misma base de datos o en otra instancia de SQL Server.

Pueden ser tablas, vistas, procedimientos almacenados y funciones definidas por el usuario. Por ejemplo nos sirven para  hacer un objeto remoto que aparezca como  local o  proporcionar un alias a un objeto local.

Para gestionar sinónimos:

  • CREATE SYNONYM,
  • ALTER SYNONYM,  y

  • DROP SYNONYM,

Para crear un sinónimo, debe tener permiso CREATE SYNONYM, así como el permiso para modificar el esquema.

Captura

Vemos los sinónimos que tenemos.

Captura

Hacerlo sin sinónimos.

Captura

Buscamos por una determinada categoría y limitamos el resultado en los 2.

#sqlserver dinámico

Volvemos a temas de la certificación 70-461 de SQL Server.

SQL dinámico proporciona un mecanismo para la construcción de una cadena de caracteres que se pasa a SQL Server y lo  interpreta como un comando y ejecuta.

La construcción y ejecución de SQL dinámico con sp_executesql se prefiere sobre  EXEC porque, EXEC, no puede tomar parámetros en tiempo de ejecución, pero lo más importante, mediante la definición de tipos  utilizando sp_executesql puede proporcionar una línea de defensa contra los ataques de inyección SQL.

Captura

Utilizamos  sp_executesql para generar dinámicamente una consulta que devuelve información de un empleado basado en un valor empid.

Ya veremos mas casos mas adelante ;).

Conectar nuesta bbdd #DocumentDb de #Azure desde nuestro ordenador

Para eso nos bajamos primero DocumentDB Studio:

https://studiodocumentdb.codeplex.com/

Captura

Lo descargamos y descomprimimos.

Captura

Ponemos ID y Key correspondiente de  nuestro DocumentDB dentro de Azure

Captura

Captura

Ahora toca jugar con el programa y con la bbdd de DocumentDB

CRUD con procedimientos almacenados en #sqlserver

Aunque no se ve realmente en la certificación 70-461 de SQL Server, voy a profundizar en este tema ya que como verán podemos tener en pocas lineas de código casi todo lo que se necesita.

Después estas lineas de códigos las llamamos desde cualquier lenguaje de progrmación y tenemos hecho parte de nuestro programa.

Al turrón …

Create = INSERT or Create New Table
Read = SELECT
Update = UPDATE
Delete = DELETE

Sobre esta premisa vamos a hacer nuestros primeros procedimientos almacenados sencillos, después lo iremos complicando.

CREATE (C)

Vamos a crear nuestra agenda de teléfonos.  Es sufiente con 4 campos para aprende esto: Id, nombre,email y telefono. Esta parte no la meteriamos en el procedimientos almacenado.

1.- Creamos la bbdd Agenda

Captura

  1. La tablaCaptura

Vamos con los procedimientos almacenados con insert.

Captura

Y ahora le ejecutamos

Captura

El fichero http://1drv.ms/1dgQmDA

READ (R)

Seria los Select simplemente. En este puto puede ser muchos y variados.  A gusto del ….

UPDATE (U)

Modificamos registros.

Captura

Una vez que tengamos el procedimiento almacenado, vemos los registros.

Captura

Ahora ejecutamos el procedimiento almacenado y vemos de nuevo la tabla

Captura

Estos pasos que he hecho estan en …. http://1drv.ms/1dhW8ot

DELETE (D)

Borramos registro de la tabla.

Os dejo el procedimiento almacenado de borrar en http://1drv.ms/1J7gXP0

Incluso se puede meter todos estos procedimientos en uno o desde visual studio , ya lo veremos. Antes vamos a ver lo que nos queda de la 70-461.

Exportar mis tablas de #sqlserver a #mongodb sin tener la versión SQL Server 2016

Ya utilizamos la versión 2016 de SQL Server en

Nuestra bbdd de ejemplo #tsql2012 de #sqlserver pasarla a #DocumentDB

Pues ahora lo vamos a hacer con las version 2014, aunque se puede hacer con 2012  y anteriores.

Captura

Exportar

Captura

Captura

Captura

Captura

Captura

Aquí tenemos un botón de vista previa para ver lo que se va a grabar en el excel.

Captura

Nos salimos de esta pantalla y damos siguiente hasta finalizar. Ya tenemos el fichero excel. Ahora toca importar.

Captura

Hemos puesto –headerline para indicrle que la primera linea son los encabezamos.

Nos metemos en el entorno gráfico de  Mongodb.

Captura

Y ya podemos trabajar con la tabla.

CRUD, ABM, ABC, ABMC,ABCDEF, ……

Vamos con un poco de teoría.

Lo que hace años se llamaba Altas,Bajas, Modificacion, Consultas y Listados ha ido con el tiempo cambiandose de nombre.

Según la Wikipedia:

“En computación CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (del original en inglés: Create, Read, Update and Delete). Se usa para referirse a las funciones básicas en bases de datos o la capa de persistencia en un software.

En algunos lugares, se utilizan las siglas ABM para lo mismo (Alta Baja Modificación), obviando la operación de Obtener; el acrónimo ABC para Altas, Bajas y Cambios; ABML siendo la última letra (L) de listar, listado o lectura; o ABMC siendo la C de Consulta.

También es usado el ABCDEF : Agregar, Buscar, Cambiar, Desplegar(listar), Eliminar, Fichar(Ficha, cédula o Reporte de un registro)”.

AquÍ utilizaremos la primera, CRUD y lo aplicaremos a SQL Server, DocumentB y MongoDB.

bbdd