# PROCEDIMENTO ARMAZENADO SQL – como automatizar com SQL

Com as procedimentos armazenados do SQL, pode guardar os **procedimentos 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 procedimento armazenado.

## O que são procedimentos armazenados SQL?

Ao utilizar a linguagem de programação e bases de dados [SQL](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/o-que-e-sql/), há instruções que são utilizadas constantemente. No entanto, ter de introduzir novamente instruções complexas demora tempo e pode dar origem a erros. Uma Stored Procedure SQL facilita o trabalho com consultas regulares ou complexas. Permite guardar facilmente blocos de código utilizados com frequência, aceder aos mesmos quando necessário e, assim, **automatizar processos recorrentes** e melhorar consideravelmente a eficiência da gestão dos seus dados.

A vantagem dos procedimentos armazenados é que, em princípio, podem conter **qualquer tipo de instrução e sentença SQL**, combinando funções, comandos SQL e operadores SQL com diversos parâmetros, bem como executar praticamente qualquer tipo de tarefa. Cria-se o Procedimento Armazenado para a ação pretendida e acede-se a ele adicionando o nome do PROCEDIMENTO numa instrução típica como \[SQL UPDATE\](t3://page?uid=32945) ou SQL SELECT. Entre as funções que podem ser automatizadas estão as atualizações, as consultas, a eliminação de dados ou a saída dos valores pretendidos.

Dica Aprenda os conceitos básicos do SQL: [o](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/introducao-ao-sql-com-exemplos/) nosso [guia de SQL com exemplos](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/introducao-ao-sql-com-exemplos/) oferece-lhe uma visão geral das funções e regras mais importantes.

## Sintaxe das procedimentos armazenados em SQL

A sintaxe específica da rotina armazenada depende do bloco de código que pretenda guardar; consoante isso, será mais ou menos complexa.

**Criar um procedimento armazenado simples**:

```sql
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;
```

Dependendo do sistema de gestão de bases de dados, a sintaxe pode também ser a seguinte:

```sql
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;
```

Utiliza estes parâmetros:

- `CREATE PROCEDURE`: Com esta palavra-chave, define-se o bloco de código que se pretende armazenar. Utilize o nome do procedimento para o executar ou para o adicionar a outra instrução. Os parâmetros podem conter vários dados necessários, incluindo o tipo de dados.
- `AS`: Determina o início do bloco de código que pretende armazenar como Procedimento Armazenado.
- `BEGIN` + `END`: Marca o início e o fim do bloco de código que pretende guardar.
- `GO`: Desempenha a mesma função que END; marca o fim do bloco de código.

Executar procedimento armazenado:

```sql
EXEC Procedure_Name;
```

## Vantagens e desvantagens das procedimentos armazenados

As rotinas armazenadas SQL permitem, em princípio, guardar todas as instruções SQL possíveis para depois aceder às mesmas como uma rotina. Estas são algumas das vantagens das rotinas armazenadas:

- **Reutilizar código**: Existem comandos e funções SQL que são utilizados repetidamente na base de dados. Quer pretenda guardar instruções complexas ou simples, pode reutilizá-las sem ter de voltar a introduzir o código correspondente.
- **Facilitar o trabalho com bases de dados**: Os procedimentos armazenados permitem, acima de tudo, dividir processos extensos de tarefas complexas em vários procedimentos. Trabalha-se com os blocos de código como se fossem módulos que se encadeiam na instrução atual.
- **Maior eficiência e desempenho**: Com blocos de código armazenados, é mais fácil criar instruções SQL e melhorar o desempenho de bases de dados extensas.
- **Mais segurança**: Ao atribuir autorizações aos procedimentos armazenados, garante que os dados sensíveis e críticos para a empresa só possam ser recuperados ou processados com os direitos de acesso necessários.

A seguir, apresento algumas aplicações práticas em diversas áreas:

- Automatizar os processos de encomendas e atualizar os dados dos clientes
- Monitorizar e verificar transações financeiras suspeitas ou calcular as taxas de juro dos empréstimos
- Criar ofertas automaticamente com base nos dados dos clientes, comportamentos de compra, volume de encomendas ou região
- Calcular as comissões dos funcionários com base no seu desempenho
- Criar relatórios financeiros e contabilizar transações
- Acompanhar, supervisionar e sincronizar os inventários de stock e as entradas de encomendas

## Exemplos práticos de procedimentos armazenados SQL

Para compreender o funcionamento das Stored Procedures, apresentamos-lhe dois exemplos práticos.

### Ver todos os clientes

Para visualizar todos os dados dos clientes da tabela «Clientes», proceda da seguinte forma:

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

### Selecionar encomendas de uma cidade

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

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

## Alternativas às procedimentos armazenados SQL

O SQL oferece várias alternativas com o mesmo funcionamento que as Stored Procedures. Algumas delas são:

- **UDF (Função Definida pelo Utilizador)**: 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 predefinida noutra instrução SQL sem ter de introduzir novamente o código completo.
- **VIEWS**: Com as VIEWS, pode criar tabelas virtuais vazias para analisar conjuntos de dados de acordo com parâmetros predefinidos. Pode adicionar VIEWS como UDFs ou Stored Procedures como elemento numa instrução SQL.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/procedimento-armazenado-sql/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/procedimento-armazenado-sql/) for AI/LLM consumption.