Stored procedure
Plano de Trabalho
Lab. 5: Programação em Transact-SQL
- Procedimentos do Lado do Servidor (Stored Procedures)
1. Conceito.
- Stored Procedures são semelhantes a subrotinas ou subprogramas desenvolvidos noutras linguagens de programação (p.e. C, Pascal, Basic, Java, etc.), mas que são guardados no servidor.
- Aceitam parâmetros de entrada e retornam resultados. Isto é, como qualquer subprograma, um procedimento permite a passagem de parâmetros de entrada e de saída, aceitando valores e devolvendo algum tipo de resultado à entidade que o invocou, que pode ser um outro procedimento, um gatilho ou mesmo uma aplicação externa cliente.
- Retornam um valor de status indicando se aconteceu um erro, e qual foi.
- São basicamente blocos de instruções SQL compiladas num único plano de execução. 2. Propósitos/Vantagens.
- Diminuição do tráfego na rede. A execução destes programas no seio de um servidor permite reduzir substancialmente o tráfego de rede provocado por aplicações que solicitem ao servidor a execução de instruções SQL. O servidor passa a ser assim não só servidor de dados, mas também servidor de programas para a manipulação dos dados.
- Programação por módulos. Um stored procedure após ser guardado na BD, pode ser invocado várias vezes num programa. Pode também ser alterado sem que haja necessidade de alterar em todos os lados.
- Execução mais rápida. Se uma operação tem muitas instruções T-SQL e/ou é executada muitas vezes, os stored procedures conseguem ser mais rápidos, pois são compilados e optimizados no momento da sua criação.
- Segurança. Pode ser dada permissão aos utilizadores para executar um stored procedure, mesmo que não tenham permissão para utilizar o mesmo código directamente através de um editor.
3. Exemplos.
Exemplo 1:
CREATE PROC Cli
AS
SELECT * FROM CLIENTE
EXEC cli
Exemplo 2:
ALTER PROC Cli @CodCli int
AS
SELECT * FROM CLIENTES
WHERE ClienteID = @CodCli
EXEC Cli 1
4.