Saltar al contenido

1

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.

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.

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 ;).

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

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.

1

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.

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

Muy sencillo y fácil.

Nos vamos a su pagina web:

CapturaDescargamos e instalamos

Captura

Creamos conexion

Captura

Salimos de esta ventana y conectamos

Captura

Ya estamos dentro. Ahora a jugar ....

Vamos a seguir viendo ejemplo de lo que se puede ver en los procedimientos almacenados.

Captura

Como podemos observar, ls variables podemos declarar dentro y fuera de los procedimientos almacenados.

Captura

Calcular el total de compras de clientes para hacerl algún tipo de descuento.

Como conclusión a este tema, es super importante manejar este tipo de estructura ya que nos va a facilitar mucho nuestro trabajo, incluso en lenguajes de programación, y que solo será llamarles y tendremos muchas cosas hechas.

Todos los scripts que he ido poniendo últimamente en este blog  lo podemos meter en procedimientos almacenados. Así que ya tenéis ejemplos

Si lo mezclamos con corrección de erroes y los desencadenadores, podemos hacer cosas majas.

Lo iremos viendo.

 

MongoDB almacena los datos en forma de documentos.

Lo podemos llamar "registros" o "filas"

Captura

MongoDB  son documentos BSON.

BSON es una representación binaria de JSON con información  adicional. En los documentos, el valor de un campo puede ser cualquiera de los tipos de datos BSON, incluyendo otros documentos, matrices y matrices de documentos.

BSON:http://docs.mongodb.org/manual/reference/bson-types/

JSON: http://www.json.org/

Todos los documentos se guarda en colecciones. Una colección es un conjunto de documentos relacionados que tienen un conjunto de índices comunes  Las colecciones son análogas a una tabla en las bases de datos relacionales.

Captura

Vamos ir poco a poco viendo poca teoría y mas práctica. A la vez iremos relacionando con sql server con temas ya tratados en este blog .

Vamos a meter caña que estamos acabando el temario de la certificación 70-461.

Captura

Este procedimiento nos permite listar todos los empleados.

Captura

Utilizando Where dentro del procedimiento almacenado.

Captura

Para ver los cumples

CapturaHaciendo Joins.

la ventaja que tenemos con los procedimientos almacenados es que le podemos llamar desde donde queramos, eso si, abriendo su bbdd correspondiente.

Se guardan en:

Captura

Y se borran con DROP.

Vamos a seguir en un siguiente artículo con este mismo tema, que da para mucho.

Ya vimos

A tener en cuenta cuando convertimos datos en #sqlserver

Convirtiendo con CAST en #sqlserver

Usando CONVERT en #sqlserver

Pues ahora vamos con  FORMAT

Esta instrucción devuelve un valor  con el formato y y el idioma por defecto o que se haya configurado con SET LANGUAGE. en SQL Server.

Vamos con un ejemplo sencillo.

Captura

Dada una fecha, nos devuelve en diferentes formatos dependiendo el país

Captura

En formato numérico, dependiendo numero de dígitos y páis.

Captura

En moneda respectiva.

Y asi .... gran variedad. Según vayamos avanzando en temas de programación veremos los distintos casos.