TOP

SQL Stored Procedures para SQL Server

O que é Stored Procedure?

Stored Procedure (procedimento armazenado) é um código SQL preparado que pode ser armazenado para que o código possa ser usado continuamente.

Portanto, se você tiver uma consulta SQL que escreve repetidamente, salve-a como um procedimento armazenado e chame-a para executar.

Você também pode passar parâmetros para um procedimento armazenado para que o procedimento armazenado possa atuar nos valores dos parâmetros passados.


Stored Procedure Sintaxe

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Executando Stored Procedure

EXEC procedure_name

Banco de dados de demonstração

A seguir está um exemplo da tabela "Customers" ("Clientes") do banco de dados "Northwind":

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure Exemplo

A consulta SQL a seguir cria um procedimento armazenado denominado "SelectAllCustomers" que seleciona todos os registros da tabela Clientes:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Vamos executar o procedimento armazenado acima da seguinte maneira:

EXEC SelectAllCustomers

Stored Procedure com um parâmetro

A consulta SQL a seguir cria um procedimento armazenado que seleciona clientes de uma cidade específica na tabela Clientes:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Vamos executar o procedimento armazenado acima da seguinte maneira:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure com muitos parâmetros

É muito fácil configurar vários parâmetros, ou seja, listar cada parâmetro e tipo de dados separados por vírgula conforme mostrado abaixo.

A instrução SQL a seguir cria um procedimento armazenado que seleciona clientes de uma cidade específica com um CEP específico da tabela Clientes:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Vamos executar o procedimento armazenado acima da seguinte maneira:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'