Módulo 1.3: Procedimientos almacenados

microsoft-azure-logo

Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL o una referencia a un método de Common Runtime Language (CLR) de Microsoft .NET Framework. Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:

  • Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.
  • Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden contener llamadas a otros procedimientos.
  • Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de estos.

Ventajas de usar procedimientos almacenados

Tráfico de red reducido entre el cliente y el servidor

  • Mayor seguridad:
  1. Al llamar a un procedimiento a través de la red, solo está visible la llamada que va a ejecutar el procedimiento.
  2. Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente.
  • Reutilización del código
  • Mantenimiento más sencillo
  • Rendimiento mejorado

Tipos de procedimientos almacenados

Temporales

                Los procedimientos temporales son una forma de procedimientos definidos por el usuario. Los procedimientos temporales son iguales que los procedimientos permanentes salvo porque se almacenan en tempdb. Hay dos tipos de procedimientos temporales: locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad.

Sistema

Los procedimientos del sistema se incluyen con SQL Server. Están almacenados físicamente en la base de datos interna y oculta Resource y se muestran de forma lógica en el esquema sys de cada base de datos definida por el sistema y por el usuario. Además, la base de datos msdb también contiene procedimientos almacenados del sistema en el esquema dbo que se usan para programar alertas y trabajos.

Fuente: MSDN

Estructura de los procedimientos almacenados:

USE [BDName]

GO

create procedure [nombre_procedimiento]

@campo tipocampo,

@campo2 tipocampo

AS

begin

INSERT INTO tablename(campo1,…,campo2)values(@campo1, … ,@campo2);

END

GO

En el caso de ejemplo y siguiendo con la table “persona” quedaría de la siguiente manera:

USE prueba5

go

create procedure insertarprueba

@nombre varchar(80),

@apat varchar(80),

@amat varchar(80)

AS

begin

INSERT INTO persona(nombre, apat, amat)values(@nombre, @apat, @amat);

END

GO

Ejecutar el procedimiento almacenado

SQL Server permite llamar los procedimientos almacenados por dos maneras distintas:

  • Llamar los procedimientos almacenados por código: Estructura:

DECLARE @return_value int

EXEC @return_value = [dbo].[procedure_name]

@campo1 = ‘contenido’,…

@campo2 = ‘contenido’

SELECT  ‘Return Value’ = @return_value

GO

  • Uno de las ventajas que tiene SQL Server permite llamar el procedimiento almacenado desde un Modo diseño:

azm3

Nos abre la siguiente ventana, en la cual ingresamos los datos que queremos ingresar al procedimiento almacenado. Da clic en Ok, para ejecutar el procedimiento almacenado.

azm32

El resultado del procedimiento almacenado es el siguiente:

DECLARE      @return_value int

EXEC   @return_value = [dbo].[insertarprueba]

@nombre = N’prueba1′,

@apat = N’prueba’,

@amat = N’prueba3′

SELECT ‘Return Value’ = @return_value

GO

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s