# data[].attributes.body
Un procedimiento almacenado es un conjunto de instrucciones SQL precompiladas y almacenadas en la base de datos para realizar una tarea específica.

Características:

Pueden aceptar parámetros.

Se almacenan en la base de datos para su reutilización.

Ayudan a modularizar y organizar el código.

Ventajas:

Reducción de la redundancia del código.

Mayor seguridad al limitar el acceso directo a las tablas.

Ejemplo:

CREATE PROCEDURE ObtenerClientes AS SELECT * FROM Clientes;

# data[].attributes.body
Una función es un conjunto de instrucciones SQL que acepta parámetros y devuelve un valor.

Tipos:

Funciones escalares: Devuelven un único valor.

Funciones de tabla: Devuelven un conjunto de filas.

Usos Comunes:

Realizar cálculos.

Manipular cadenas de texto o fechas.

Ejemplo:

CREATE FUNCTION CalcularDescuento (@precio DECIMAL) RETURNS DECIMAL AS BEGIN RETURN @precio * 0.1; -- Descuento del 10% END;

# data[].attributes.body
Un trigger es un conjunto de instrucciones SQL asociado a una tabla y se ejecuta automáticamente antes o después de ciertos eventos.

Tipos:

BEFORE: Se ejecuta antes del evento.

AFTER: Se ejecuta después del evento.

Usos Comunes:

Validaciones antes de insertar o actualizar datos.

Registro de cambios en una tabla.

Ejemplo:

CREATE TRIGGER ActualizarInventario AFTER INSERT ON Ventas FOR EACH ROW UPDATE Inventario SET Cantidad = Cantidad - NEW.CantidadVendida WHERE ProductoID = NEW.ProductoID;