quarta-feira, 4 de julho de 2012

Stored Procedure - Parâmetros de Entrada e Saída


STORED PROCEDURE
Stored Procedure é um grupo de instruções Transact-SQL compiladas em um único plano de execução. As 

Stored Procedures podem ajudá-los 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.