top of page

Procedure - SQL SERVER

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 27 de nov. de 2023
  • 3 min de leitura

Atualizado: 7 de ago.


Uma procedure (procedimento armazenado) é um conjunto de instruções SQL que são armazenadas no banco de dados e podem ser chamadas e executadas repetidamente. Elas são úteis para realizar tarefas complexas ou não, que precisam ser executadas com frequência, como consultas elaboradas, operações de atualização de dados ou cálculos específicos. As procedures podem aceitar parâmetros de entrada e retornar valores de saída, o que as torna flexíveis e reutilizáveis em diferentes partes de um sistema de banco de dados. Elas também ajudam a manter a lógica de negócios no banco de dados, o que pode melhorar a segurança e a consistência dos dados. As procedures são criadas usando a linguagem SQL (Structured Query Language) e podem ser chamadas a partir de outras instruções SQL, de aplicativos ou de outras procedures, tornando-as uma parte fundamental da programação de banco de dados.


🧩 DICA: Compartilhando aqui com vocês uma dica que recebi de um DBA: Crie a procedure vazia e depois faça a inserção de dados com o ALTER pois isso melhora a performance na execução, obrigando o SQL a recalcular o plano de execução da procedure.



Consultar procedures existentes


ree

USE CORPORE; -- Substitua pelo nome do seu banco de dados 

SELECT 

 

    SCHEMA_NAME(schema_id) AS SchemaName,

    name AS ProcedureName,

    FORMAT(create_date, 'dd/MM/yyyy') AS CreationDate,

    FORMAT(modify_date, 'dd/MM/yyyy') AS LastModifiedDate,

    USER_NAME(principal_id) AS CreatedByUser,

    USER_NAME(principal_id) AS LastModifiedByUser

 

FROM sys.procedures

ORDER BY LastModifiedDate ASC


ree



Consultar o script de uma procedure



ree


USE CORPORE; -- Substitua pelo nome do seu banco de dados

GO

 

DECLARE @NomeDaProcedure NVARCHAR(100) = 'PRTABAGP'; -- Substitua pelo nome da sua procedure

DECLARE @Sql NVARCHAR(MAX);

 

SELECT @Sql = definition

FROM sys.sql_modules

WHERE object_id = OBJECT_ID(@NomeDaProcedure);

 

PRINT @Sql;


Resultado script procedure para importar um arquivo csv para o banco:

ree


Criando procedures

🍁 Exemplo 1


CREATE PROCEDURE sp_lista_clientes

    @cidade NVARCHAR(100)

AS

BEGIN

    SELECT nome, email

    FROM clientes

    WHERE cidade = @cidade;

END;



--para executar a procedure: EXEC sp_lista_clientes 'São Paulo';



🍁 Exemplo 2


Remover linhas em branco ou null se determinadas colunas estiverem vazias:


Criar procedure:

ree

CREATE PROCEDURE sp_RemoveLinhasEmBranco

AS

BEGIN

    SET NOCOUNT ON;


    DELETE FROM ouvidoria.dbo.faleunimed

    WHERE (COLUNA1 = '' OR COLUNA1 IS NULL)

       AND (COLUNA2 = '' OR COLUNA2 IS NULL)

    AND (COLUNA3 = '' OR COLUNA3 IS NULL);


    PRINT 'Linhas em branco removidas com sucesso.';

END;

GO


Depois que criamos a procedure, é preciso executá-la.


Executar procedure


ree



EXEC sp_RemoveLinhasEmBranco;

ree




Excluir procedures


ree

DROP PROCEDURE IF EXISTS sp_RemoveLinhasEmBranco;

GO



Alterar nome de uma procedure


ree


USE seubanco;

GO

 

-- Verifica se a procedure existe antes de renomear

IF EXISTS (

    SELECT * FROM sys.objects 

    WHERE type = 'P' AND name = 'nome_procedure_existente'

)

BEGIN

    -- Renomeia a procedure

    EXEC sp_rename 'nome_procedure_existente', 'novo_nome_procedure';

   

    PRINT 'Procedure renomeada com sucesso.';

END

ELSE

BEGIN

    PRINT 'A procedure original não existe.';

END

GO



Procedures Nativas


O SQL Server já traz procedures nativas prontas para facilitar tarefas administrativas, como ver o tamanho de tabelas, listar colunas, exibir objetos e muito mais.




© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page