procedimientos almacenado en sql server

Post on 20-Feb-2017

110 Views

Category:

Data & Analytics

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROCEDIMIENTO ALMACENAD EN SQL

SERVER

EJEMPLO DE PROCEDIMIENTO ALMACENADO Cree un procedimiento que imprima el total de una

factura al ingresar el código de la factura. Debe crear una tabla FACTURA y RENGLON. Donde

renglón es el detalle de cada articulo comprado y su precio. Por lo tanto una factura es especificada por muchos renglones. Teniendo esto claro vamos a escribir nuestro procedimiento, en el cual sumaremos el resultado de cada renglón en la factura con respecto al parámetro de entrada.

Como ves, hemos hecho una sencilla consulta en la tabla RENGLON para sumar el subtotal de cada producto en la factura. En el WHERE hemos hecho una comparación del ID de la factura con el parámetro ingresado al procedimiento.

CREATE PROCEDURE total_factura (@id_factura INT) AS BEGIN SELECT SUM(UNIDADES*PRECIO) FROM RENGLON WHERE RENGLON.IDFACTURA = @id_factura; END;

Ejecute un procedimiento almacenado

EXEC total_factura 1;

Es decir

Exec < nombre del procedimiento>EXECUTE total_factura 1

MODIFICAR UN PROCEDIMIENTO

Usaremos ALTER PROCEDURE para modificar procedimientos en SQL Server. Con esta sentencia se busca cambiar el cuerpo y las características de un procedimiento ya creado:

ALTER PROCEDURE nombre_procedimiento <nuevas características> AS <nuevo bloque de instrucciones>

MODIFICAR UN PROCDIMIENTO

Vamos a, modificar un procedimiento llamado modificar_cliente, el cual actualiza los datos de los registros de una tabla llamada CLIENTE. Lo que haremos será agregarle la clausula WITH ENCRYPTION para que el procedimiento sea encriptado, ya e no lo está.Veamos:

ALTER PROCEDURE modificar_cliente (@id_cliente INT, @nombre_cliente VARCHAR(20),@apellido_cliente VARCHAR(20))

WITH ENCRYPTION AS UPDATE CLIENTE SET 

NOMBRE=@nombre_cliente,APELLIDO=@apellido_cliente WHERE IDCLIENTE=@id_cliente;

Una vez modificado veremos si podemos consultar el cuerpo de modificar_cliente con el procedimiento del sistema sp_helptext

Borrar Un Procedimiento

Para borrar un procedimiento en SQL Server se usa la sentencia DROP PROCEDURE:

DROP PROCEDURE nombre_procedimiento Sencillo no? Miremos un pequeño ejemplo. Borraremos un

procedimiento llamado retiro_fondos:

DROP PROCEDURE retiro_fondos

BORRAR PROCEDIMIENTOS ALMACENADOS Una buena práctica antes de crear un procedimiento es comprobar si ya existe en la

base de datos. Para ello usaremos la función OBJECT_ID de SQL Server. Esta función comprueba la existencia de cualquier tipo de objeto dentro de la base de datos, ya sea una tabla, procedimiento, restricción, función, etc.

OBJECT_ID recibe como primer parámetro el nombre del objeto en tipo varchar, y en el segundo parámetro recibe el tipo de objeto. Por ejemplo, para referirnos a un procedimiento se usa el carácter ‘P’.

Ahora extendamos el ejemplo visto con anterioridad con el siguiente condicional de existencia:

IF(OBJECT_ID('retiro_fondos','P') IS NOT NULL) DROP PROCEDURE retiro_fondos; ELSE PRINT 'El procedimiento no existe';

CREACIÓN DE VISTAS/CREATE VIEW

Las vistas pueden considerarse como tablas virtuales. Generalmente hablando, una tabla tiene un conjunto de definiciones, y almacena datos físicamente. Una vista también tiene un conjunto de definiciones, que se construye en la parte superior de la(s) tabla(s) u otra(s) vista(s), y no almacena datos físicamente.

La sintaxis para la creación de una vista es la siguiente:

LECCIÒN FILA 1

LECCION 2 - IN - BETWEEN - LIKE - IS NULL -DISTINC > mayor que < menor que

Seleccionar el nombre y el salario de los empleados que ganen más de $ 800 que no tengan comisión nula y que su apellido contenga como segunda letra la o.

  SELECT NOMBRE, SALARIO FROM EMPLEADO WHERE Salario > 800 AND Comision is NOT NULL AND Nombre LIKE '_o%'

¿Cuál es el nombre y salario de los empleados que tienen igual salario que P. PLUAS?

  Select A.nombre, A.Salario From Empleado A Where A.Salario= ( Select B.Salario From Empleado B Where B.nombre=P.PLUAS)

La sentencia SELECT DISTINCT Dentro de una tabla, algunas columnas pueden contener valores duplicados. Esto no es un problema, algunas veces tu querras listar solo los valores diferentes (distintos) en la tabla La palabra DISTINCT puede ser usada como llave para regresar solo los valores distintos(diferentes). Sintaxis SQL SELECT DISTINCT SELECT DISTINCT nombre_columna(s) FROM nombre_table Ejemplo: SELECT DISTINCT Apellidos FROM Personas Abajo esta el resultado de la sentencia DISTINCT a la tabla "Personas":

SELECT DISTINCT Ciudad FROM Personas Abajo esta el resultado de la sentencia DISTINCT a la tabla "Personas":

SQL WHERE

La sentencia where es usada para extraer solo los registros que cumplen con el criterio especificad

La Sintaxis SQL WHERE

SELECT *FROM PersonasWHERE Apellidos ='Trejo Lemus'

SELECT *FROM PersonasWHERE P_id = 9

Operador AND

SELECT * FROM PersonasWHERE Nombre='Marcel Abisag'AND Apellidos='Sobrevilla Trejo'

Operador OR

  SELECT * FROM PersonasWHERE Nombre='Martha Beatriz'OR Nombre='Juana Elvira'

SQL ORDER BY

SELECT nombre_columna(s)FROM nombre_tablaORDER BY nombre_column(s) ASC

SELECT nombre_columna(s)FROM nombre_tablaORDER BY nombre_column(s) DESC

top related