Com as pro­ce­di­men­tos ar­ma­ze­na­dos do SQL, pode guardar os pro­ce­di­men­tos e as consultas de que mais precisa como blocos de código completos, para depois os poder executar de forma rápida e eficiente. Assim, não precisa de voltar a escrever uma instrução SQL; basta abrir o pro­ce­di­mento ar­ma­ze­nado.

O que são pro­ce­di­men­tos ar­ma­ze­na­dos SQL?

Ao utilizar a linguagem de pro­gra­ma­ção e bases de dados SQL, há ins­tru­ções que são uti­li­za­das cons­tan­te­mente. No entanto, ter de in­tro­du­zir novamente ins­tru­ções complexas demora tempo e pode dar origem a erros. Uma Stored Procedure SQL facilita o trabalho com consultas regulares ou complexas. Permite guardar fa­cil­mente blocos de código uti­li­za­dos com frequên­cia, aceder aos mesmos quando ne­ces­sá­rio e, assim, au­to­ma­ti­zar processos re­cor­ren­tes e melhorar con­si­de­ra­vel­mente a efi­ci­ên­cia da gestão dos seus dados.

A vantagem dos pro­ce­di­men­tos ar­ma­ze­na­dos é que, em princípio, podem conter qualquer tipo de instrução e sentença SQL, com­bi­nando funções, comandos SQL e ope­ra­do­res SQL com diversos pa­râ­me­tros, bem como executar pra­ti­ca­mente qualquer tipo de tarefa. Cria-se o Pro­ce­di­mento Ar­ma­ze­nado para a ação pre­ten­dida e acede-se a ele adi­ci­o­nando o nome do PRO­CE­DI­MENTO numa instrução típica como [SQL UPDATE](t3://page?uid=32945) ou SQL SELECT. Entre as funções que podem ser au­to­ma­ti­za­das estão as atu­a­li­za­ções, as consultas, a eli­mi­na­ção de dados ou a saída dos valores pre­ten­di­dos.

Dica

Aprenda os conceitos básicos do SQL: o nosso guia de SQL com exemplos oferece-lhe uma visão geral das funções e regras mais im­por­tan­tes.

Sintaxe das pro­ce­di­men­tos ar­ma­ze­na­dos em SQL

A sintaxe es­pe­cí­fica da rotina ar­ma­ze­nada depende do bloco de código que pretenda guardar; consoante isso, será mais ou menos complexa.

Criar um pro­ce­di­mento ar­ma­ze­nado simples:

CREATE PROCEDURE Procedure_Name (Tipo de datos de Parámetro1, Tipo de datos de Parámetro2, …)
AS
BEGIN
(Bloque de código que quieres guardar)
END;
sql

De­pen­dendo do sistema de gestão de bases de dados, a sintaxe pode também ser a seguinte:

CREATE PROCEDURE Procedure_Name (Tipo de datos de Parámetro1, Tipo de datos de Parámetro2, …)
AS
(Bloque de código que quieres guardar)
GO;
sql

Utiliza estes pa­râ­me­tros:

  • CREATE PROCEDURE: Com esta palavra-chave, define-se o bloco de código que se pretende armazenar. Utilize o nome do pro­ce­di­mento para o executar ou para o adicionar a outra instrução. Os pa­râ­me­tros podem conter vários dados ne­ces­sá­rios, incluindo o tipo de dados.
  • AS: Determina o início do bloco de código que pretende armazenar como Pro­ce­di­mento Ar­ma­ze­nado.
  • BEGIN + END: Marca o início e o fim do bloco de código que pretende guardar.
  • GO: De­sem­pe­nha a mesma função que END; marca o fim do bloco de código.

Executar pro­ce­di­mento ar­ma­ze­nado:

EXEC Procedure_Name;
sql

Vantagens e des­van­ta­gens das pro­ce­di­men­tos ar­ma­ze­na­dos

As rotinas ar­ma­ze­na­das SQL permitem, em princípio, guardar todas as ins­tru­ções SQL possíveis para depois aceder às mesmas como uma rotina. Estas são algumas das vantagens das rotinas ar­ma­ze­na­das:

  • Reu­ti­li­zar código: Existem comandos e funções SQL que são uti­li­za­dos re­pe­ti­da­mente na base de dados. Quer pretenda guardar ins­tru­ções complexas ou simples, pode reutilizá-las sem ter de voltar a in­tro­du­zir o código cor­res­pon­dente.
  • Facilitar o trabalho com bases de dados: Os pro­ce­di­men­tos ar­ma­ze­na­dos permitem, acima de tudo, dividir processos extensos de tarefas complexas em vários pro­ce­di­men­tos. Trabalha-se com os blocos de código como se fossem módulos que se encadeiam na instrução atual.
  • Maior efi­ci­ên­cia e de­sem­pe­nho: Com blocos de código ar­ma­ze­na­dos, é mais fácil criar ins­tru­ções SQL e melhorar o de­sem­pe­nho de bases de dados extensas.
  • Mais segurança: Ao atribuir au­to­ri­za­ções aos pro­ce­di­men­tos ar­ma­ze­na­dos, garante que os dados sensíveis e críticos para a empresa só possam ser re­cu­pe­ra­dos ou pro­ces­sa­dos com os direitos de acesso ne­ces­sá­rios.

A seguir, apresento algumas apli­ca­ções práticas em diversas áreas:

  • Au­to­ma­ti­zar os processos de en­co­men­das e atualizar os dados dos clientes
  • Mo­ni­to­ri­zar e verificar tran­sa­ções fi­nan­cei­ras suspeitas ou calcular as taxas de juro dos em­prés­ti­mos
  • Criar ofertas au­to­ma­ti­ca­mente com base nos dados dos clientes, com­por­ta­men­tos de compra, volume de en­co­men­das ou região
  • Calcular as comissões dos fun­ci­o­ná­rios com base no seu de­sem­pe­nho
  • Criar re­la­tó­rios fi­nan­cei­ros e con­ta­bi­li­zar tran­sa­ções
  • Acom­pa­nhar, su­per­vi­si­o­nar e sin­cro­ni­zar os in­ven­tá­rios de stock e as entradas de en­co­men­das

Exemplos práticos de pro­ce­di­men­tos ar­ma­ze­na­dos SQL

Para com­pre­en­der o fun­ci­o­na­mento das Stored Pro­ce­du­res, apre­sen­ta­mos-lhe dois exemplos práticos.

Ver todos os clientes

Para vi­su­a­li­zar todos os dados dos clientes da tabela «Clientes», proceda da seguinte forma:

CREATE PROCEDURE SelectTodosLosClientes
AS
BEGIN
SELECT * FROM Clientes
END;
sql

Se­le­ci­o­nar en­co­men­das de uma cidade

Se quiser consultar todos os pedidos de uma de­ter­mi­nada cidade na tabela «Pedidos», proceda da seguinte forma:

CREATE PROCEDURE SelectTodosLosPedidosDeMadrid
AS
BEGIN
SELECT * FROM Pedidos WHERE Ciudad = 'Madrid'
END;
sql

Al­ter­na­ti­vas às pro­ce­di­men­tos ar­ma­ze­na­dos SQL

O SQL oferece várias al­ter­na­ti­vas com o mesmo fun­ci­o­na­mento que as Stored Pro­ce­du­res. Algumas delas são:

  • UDF (Função Definida pelo Uti­li­za­dor): Com as UDFs SQL, pode utilizar a palavra-chave CREATE FUNCTION para criar as suas próprias funções e armazená-las como blocos de código completos. Desta forma, pode integrar consultas complexas como uma função pre­de­fi­nida noutra instrução SQL sem ter de in­tro­du­zir novamente o código completo.
  • VIEWS: Com as VIEWS, pode criar tabelas virtuais vazias para analisar conjuntos de dados de acordo com pa­râ­me­tros pre­de­fi­ni­dos. Pode adicionar VIEWS como UDFs ou Stored Pro­ce­du­res como elemento numa instrução SQL.
Ir para o menu principal