STORED PROCEDURE
Stored Procedure é um grupo de instruções Transact-SQL compiladas em um único plano de execução. Os procedimentos armazenados podem ajudá-lo a conseguir uma implementação consistente da lógica nos aplicativos.
Stored Procedures são semelhantes às linguagens de programação, pois podem conter:
- Parâmetros de entrada e retornar vários valores na forma de parâmetros de saída para o procedimento ou lote de chamada
- Instruções de programação que executem operações no banco de dados, incluindo chamadas para outros procedimentos.
- Retornar um valor de status para um procedimento ou lote de chamada a fim de indicar êxito ou falha (e a razão da falha).
Para executar um Stored Procedure você pode utilizar o comando EXECUTE, veremos a seguir sua utilização na pratica.
Podemos criar a Stored Procedure utilizado o comando CREATE PROCEDURE do Transact-SQL.
Para nomear a Stored Procedure não é recomendável utilizar sp_ como prefixo, pois o SQL Server usa esse prefixo para Stored Procedure do banco de dados.
Para criar nosso exemplo utilizarei a versão Express do SQL Server 2008, no qual pode ser baixada gratuitamente no site da Microsoft.
Nesse exemplo irei utilizar a base de dados AdventureWorks, também pode efetuar o download no site da Microsoft.
Nesse exemplo vamos criar uma Stored Procedure onde informamos o código do departamento como parâmetro de entrada a o procedimento retornará o result set.
No exemplo a seguir vamos criar uma Stored Procedure onde vamos receber um valor de retorno, nesse caso será necessário informar o OUTPUT.
Abaixo segue a relação de parâmetros utilizados na Stored Procedure.
- Parâmetros de entrada
- Os parâmetros de entrada permitem que o comando passe um valor de dados para Stored Procedure
- Parâmetros de saída
- Os parâmetros de saída permitem que o Stored Procedure passe um valor de dados ou uma variável de cursor de volta para o comando. As funções definidas pelo usuário não podem especificar parâmetros de saída.
- Valores de retorno
- Toda Stored Procedure retorna um código de retorno de inteiro ao comando. Se o procedimento armazenado não definir um valor explicitamente para o código de retorno, este será 0.
Existem diversos comandos que não foram abordados nesse artigo, porem o processo pode ajudar muita mais do que os exemplos acima.