Stored procedures

Escrevendo Funções e Procedures no SQL Server

Meghan Kwartler

IT Consultant

O que é uma stored procedure?

O quê?

Rotinas que

  • Aceitam parâmetros de entrada
  • Executam ações (EXECUTE SELECT, INSERT, UPDATE, DELETE e outras instruções de SP)
  • Retornam status (sucesso ou falha)
  • Retornam parâmetros de saída
Escrevendo Funções e Procedures no SQL Server

Por que usar stored procedures?

Por quê?

  • Pode reduzir o tempo de execução
  • Pode reduzir o tráfego de rede
  • Permite programação modular
  • Melhora a segurança
Escrevendo Funções e Procedures no SQL Server

Qual é a diferença?

UDFs

  • Devem retornar valor
    • Tabela como valor é permitido
  • SELECT embutido para executar é permitido
  • Sem parâmetros de saída
  • Sem INSERT, UPDATE, DELETE
  • Não podem executar SPs
  • Sem tratamento de erro

SPs

  • Retorno de valor é opcional
    • Sem tabela como valor
  • Não podem ser embutidas em SELECT para executar
  • Retornam parâmetros de saída e status
  • INSERT, UPDATE, DELETE permitidos
  • Podem executar funções e SPs
  • Tratamento de erro com TRY...CATCH
Escrevendo Funções e Procedures no SQL Server

CREATE PROCEDURE com parâmetro OUTPUT

-- First four lines of code
-- SP name must be unique 
CREATE PROCEDURE dbo.cuspGetRideHrsOneDay 
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
.......
Escrevendo Funções e Procedures no SQL Server

CREATE PROCEDURE com parâmetro OUTPUT

CREATE PROCEDURE dbo.cuspGetRideHrsOneDay
    @DateParm date,
    @RideHrsOut numeric OUTPUT
AS
SET NOCOUNT ON
BEGIN
SELECT 
  @RideHrsOut = SUM(
    DATEDIFF(second, PickupDate, DropoffDate)
  )/ 3600
FROM YellowTripData
WHERE CONVERT(date, PickupDate) = @DateParm
RETURN
END;
Escrevendo Funções e Procedures no SQL Server

Parâmetros de saída vs. valores de retorno

Parâmetros de saída

  • Podem ser de qualquer tipo de dado
  • Você pode declarar vários por SP
  • Não podem ser parâmetros com valor de tabela

Valor de retorno

  • Usado para indicar sucesso ou falha
  • Apenas tipo inteiro
  • 0 indica sucesso e diferente de zero indica falha
Escrevendo Funções e Procedures no SQL Server

Você está pronto/a para usar CREATE PROCEDURE!

Escrevendo Funções e Procedures no SQL Server

Preparing Video For Download...