terça-feira, 25 de maio de 2010

SP's - Stored Procedures

Bom, depois de muitos dias sem postar nada, e do grande sucesso que teve a enquete de qual seria o próximo assunto, vamos falar um pouquinho agora, das Stored Procedures.

            Estaremos utilizando o banco de dados, SQL Server, como exemplo.

            Já indo direto ao assunto, as Stored Procedures é que um conjunto de instruções (Transact-SQL) que são executados dentro do banco de dados, é como se escrevêssemos nossas regras de negócio dentro da base. O interessante de usá-las, é que elas podem reduzir o tráfego na rede, melhorar o desempenho de um banco de dados, criar tasks, etc. pode fazer inúmeras tarefas com as SP’s.

Pelas inúmeras funcionalidades, as SP’s, trazem grandes vantagens para os Desenvolvedores e DBA’s.

          As procedures podem ser utilizadas quando temos vários sistemas diferentes (linguagens diferentes) acessando uma mesma base, com isso podemos assegurar que todos os sistemas estão executando a mesma rotina, aumentando o grau de segurança das aplicações.

Já que sabemos do potencial das SP’s , vamos ver agora como podemos criar uma.

CREATE PROCEDURE TESTE
AS
BEGIN
SELECT * FROM PESSOAS
END

          Acima criamos uma procedure simples, assim que ela for executada, ficará “guardada”  e pronta para ser chamada a qualquer momento. Podemos ainda passar parâmetros para ela.

EXEC TESTE


         
Com o comando acima, a SP é executada.
         Vamos criar uma procedure que receba parâmetros e execute um insert com os mesmos na tabela Pessoa.

CREATE PROCEDURE sp_inserePessoa
            @nome varchar(50),
            @idade int,
            @sexo char(1)

AS
            INSERT INTO PESSOA (nome, idade, sexo) VALUES (@nome, @idade, @sexo)
GO

            Agora vamos consumir nossa Procedure.

USE bd_estudo
GO

EXEC SP_inserePessoa
            @nome = ‘Leandro Martins’,
            @idade = 20
            @sexo = ‘M’
GO


           Até agora, vimos que não tem nada de complicado em criar uma procedure, mas podemos ainda melhorar a nossa, e colocar uma regra nela.

        1 – Se o nome não for informado, a inserção não poderá será concluída, e uma mensagem deverá ser exibida.

        Para isso, não precisamos de criar uma nova, podemos ALTERAR a nossa criada.

ALTER PROCEDURE sp_inserePessoa
            @nome varchar(50),
            @idade int,
            @sexo char(1)

AS
            IF @nome <> ‘’
            BEGIN

INSERT INTO PESSOA (nome, idade, sexo) VALUES (@nome, @idade, @sexo)
           
                        PRINT ‘Insert executado com sucesso!’
            END
            ELSE
                        PRINT ‘Erro: Nome não informado’
GO

Executando...

EXEC SP_inserePessoa
            @nome = ‘’,
            @idade = 20
            @sexo = ‘M’
GO

             A mensagem de erro deverá ser exibida. ‘Erro: Nome não informado’

            Ah, quase já ia esquecendo, talvez você esteja fazendo estes testes na base de dados do cliente, rsrs, além de criar e alterar pode Excluir a procedure.

DROP PROCEDURE sp_inserePessoa

         Chegamos a mais um final de um post, e espero mais uma vez ter contribuído com algo.

Nenhum comentário:

Postar um comentário