SQL SERVER- ¿Qué es un procedimiento Almacenado?


Procedimiento Almacenado o Store Procedures (En inglés) son unidades de código compuestas por una o más sentencias Transact-SQL o T-SQL y que son almacenados en el servidor. SPs nos dan la habilidad de extender el lenguaje T-SQL gracias a que podemos añadir nuestras propias subrutinas y procedimientos para las bases de datos SQL SERVER. Veamos la sintaxis.

CREATE PROCEDURE [ schema_name. ] procedure_name [ ;number ]
[ ( ] [ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUT | OUTPUT ] ] [ , ...n ] [ ) ]
[ WITH procedure_option [ , ...n ] ]
[ FOR REPLICATION ]
AS
{ sql_statement [;][ ... n ] }

Como se pueden dar cuenta se inicia con un CREATE PROCEDURE seguido del nombre del SP. En el nombre se puede especificar el esquema, el nombre y el numero (opcional). El esquema siempre debe ser incluido ya que asegura que tu SP, es creado en el esquema apropiado. El procedure_name es el nombre que le asignamos a nuestro SP. Podemos añadir un numero para algun grupo, pero esto lo debemos hacer con un ;

CREATE PROCEDURE dbo.MiStoreProcedure
    
AS
     SET NOCOUNT ON 
     CREATE TABLE Prueba(id INT PRIMARY KEY NOT NULL);
     INSERT INTO Prueba(id)VALUES(1);
    RETURN

Este pequeño ejemplo crea una tabla en mi Base de Datos, e ingresa un valor en el campo de Identificador.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE dbo.SeleccionarProductos

AS
BEGIN
    SELECT
    Codigo,
    Descripcion,
    Precio
    
    FROM
        Productos
    RETURN
END
GO

Aquí hago una consulta sencilla con un SELECT a una tabla Productos

sp01

Podemos llamar a nuestros procedimientos almacenados de la siguiente manera.

execute SeleccionarProductos
About these ads

3 Responses to SQL SERVER- ¿Qué es un procedimiento Almacenado?

  1. norber says:

    que onda,

    que hay de lo sProcedimientos almacenados que integran con CLR de .NET, se supone que es una de las nuevas características de SQL Server 2005. Seria bueno que colocaras un buen ejemplo de como hacer esto :D

    Saludos y vota por mi blog xD

  2. Alexander says:

    Excelente información compadre….estoy insertandome en este tema de VB .Net, con SQL y justo estaba en el proceso de aprender como hacer procedures y llamarlos desde VB .Net, y veo tú artículo….espectacular……me salió perfecto…Gracias.
    Ahora, tengo que ejecutarlo desde VB .Net….si sabes el codigo para ahcerlo desde VB .Net 2005, lo agradecería…..saludos cordiales,

  3. Giovanna says:

    No se puede retornar mas de un valor?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 128 other followers

%d bloggers like this: