martes, 28 de abril de 2015

FUNCIONES DEFINIDAS POR EL USUARIO


Tal como hemos visto en la programación orientada a objetos donde  creamos funciones  a nuestras clases, en SQL Server también podemos crear funciones dentro de nuestras bases de datos, a estas se les conoce como funciones definidas por el usuario. Estas funciones  también se les pueden asignar un nombre, pueden recibir parámetros y devuelven un valor.

Limitaciones.
  • ·         Este tipo de funciones no se pueden utilizar para modificar el  estado de la base.
  • ·   No pueden devolver un conjunto de resultados, a diferencia de un procedimiento almacenado
  • ·         No podemos usar una instrucción set.



Dentro de las funciones definidas por usuario tenemos las funciones escalares las cuales reciben un valor como parámetro y devuelven un solo valor


miércoles, 22 de abril de 2015

CURSORES


¿Qué es un cursor?
Un cursor es un puntero que nos permite desplazarnos fila por fila. Las instrucciones de Microsoft SQL Server producen un conjunto completo de resultados, pero hay ocasiones en que los resultados se procesan mejor de fila en fila. Abrir un cursor sobre un conjunto de resultados permite procesar el conjunto de resultados de fila en fila. Puede asignar un cursor a una variable o parámetro con un tipo de datos cursor





SENTENCIAS BÁSICAS


En el basto lenguaje de Transact  tenemos varias sentencias que nos ayudan a seleccionar la información y realizar consultas para varios  y determinados requerimientos de la información dentro de nuestras bases, es por eso que existe varias palabras o sentencias que ayudan a facilitar tal proceso. Entre las principales tenemos:

Merge: Realiza operaciones de inserción, actualización o eliminación en una tabla de destino según los resultados de una combinación con una tabla de origen. Por ejemplo, puede sincronizar dos tablas insertando, actualizando o eliminando las filas de una tabla según las diferencias que se encuentren en la otra.
Left Join: Nos devuelve todos los registros de la tabla de la izquierda junto con los que coinciden de la tabla de la derecha.
Right Join: Nos devuelve todos los registros de la tabla de la derecha  junto con los que coinciden de la tabla de la izquierda.
Cont: Devuelve el número de elementos de un grupo. COUNT funciona como la función COUNT_BIG. La única diferencia entre ambas funciones está en los valores devueltos. COUNT siempre devuelve un valor de tipo de datos int. COUNT_BIG siempre devuelve un valor de tipo de datos bigint.
Sum: Devuelve la suma de todos los valores o solo de los valores DISTINCT de la expresión. SUM solo puede utilizarse con columnas numéricas. Se omiten los valores NULL.
Min: Devuelve el valor mínimo de la expresión.
Max: Devuelve el valor máximo de la expresión.
Avg: Devuelve el promedio de los valores de un grupo
Distinct: Dentro del select  nos permite sleccionar los valores que no se repitan solo es escoge el primero en aparecer.
Group by: Agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de acuerdo con los valores de una o más columnas o expresiones en SQL Server 2014. Se devuelve una fila para cada grupo. Las funciones de agregado de la lista <select> de la cláusula SELECT proporcionan información de cada grupo en lugar de filas individuales.
Order by: Ordena el conjunto de resultado de un group by
Cube: genera un conjunto de resultados que muestra agregados para todas las combinaciones de valores de las columnas seleccionadas
Roll up: genera un conjunto de resultados que muestra agregados para una jerarquía de valores de las columnas seleccionadas.

martes, 14 de abril de 2015

Variables globales 

Estan son las variables que ofrece SQL que siempre estan disponibles para el usuario.
Entre las principales variables tenemos.

Herramientas de control de Flujos

Son las diversas herramientas que nos permiten realizar acciones de repeticion o control tal como las que aplicamos en otros lenguajes de programacion como java o c#.
En sql las principales instrucciones son:


Funciones especiales de Error

  • ERROR_NUMBER(), devuelve el número de error.
  • ERROR_SEVERITY(), devuelve la severidad del error.
  • ERROR_STATE(), devuelve el estado del error.
  • ERROR_PROCEDURE(), devuelve el nombre del procedimiento almacenado que ha provocado el error.
  • ERROR_LINE(), devuelve el número de línea en el que se ha producido el error.
  • ERROR_MESSAGE(), devuelve el mensaje de error.

Cusores

En palabras sencillas un cursosr no es mass que un puntero que valga la redundancia apunta a cada registro que nosotros tengamos de un select, y lo puede ir recorriendo uno por  uno.

para crear un cursos tenemos que abrirlo (open), recorrerlo (fetch),  cerrarlos(close) y vaciar su memoria(daellocate)

Aqui tenemos  un ejemplo :