Artigo SQL Magazine 74 - Stored Procedures no SQL Server 2008

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Criação de Stored Procedures (SP) com tratamento de exceções e de transações para manter registros em uma base de dados. Além disso, é apresentada uma alternativa para criar uma única SP para inserir, alterar e excluir registros em uma tabela.

[lead]De que trata o artigo:

Criação de Stored Procedures (SP) com tratamento de exceções e de transações para manter registros em uma base de dados. Além disso, é apresentada uma alternativa para criar uma única SP para inserir, alterar e excluir registros em uma tabela.

Para que serve:

Criação de procedimentos que ficam armazenados no banco de dados, ou seja, guardar os comandos de inserção, alteração e remoção dentro do próprio banco.

Em que situação o tema e útil:

A criação de Stored Procedures pode ser uma alternativa no desenvolvimento de aplicações Desktop e Web, organizando e armazenando o código SQL no banco de dados, facilitando assim a administração e manutenção dos comandos SQL. [/lead]

Um cenário muito comum nos dias de hoje são aplicações que contêm código SQL dentro de suas classes. As aplicações mais modernas e atualizadas centralizam o código SQL na camada de negócios, porém muitas delas ainda possuem código espalhado por toda parte. É errado? Não! Porém, existem inúmeras vantagens em tirar o código SQL das aplicações e guardá-los em Stored Procedures (SP).

A primeira vantagem é a facilidade de manutenção. Se o código SQL está dentro da aplicação e precisa ser alterado (ou contém erros), os programadores precisam copiar este código para a ferramenta de administração do banco de dados (como o Microsoft SQL Server Management Studio), em seguida tem todo o trabalho de tirar as aspas e os caracteres de concatenação, e finalmente quando o código está limpo eles manipulam, efetuam as alterações e levam novamente para dentro da aplicação tendo todo o trabalho inverso. Por exemplo, um cenário onde é solicitado que o campo nome da tabela de clientes passe a ser exibido em maiúsculo. Se o código SQL está dentro da aplicação, ela será alterada e terá que ser compilada e publicada novamente.

Agora imagine este mesmo cenário utilizando SP. O DBA entra na SP de consulta e altera o campo nome adicionando a função UPPER(), ou seja, “UPPER(Nome) AS Nome”. Pronto, não precisa compilar, não precisa publicar, entre outras tarefas. Basta substituir a SP no cliente.

Uma segunda vantagem é quando um banco de dados precisa ser migrado. Por exemplo, uma empresa vai migrar do SQL Server 2000 para o SQL Server 2008. É mais fácil encontrar softwares que façam a migração das SPs do que softwares que tenham que sair varrendo a aplicação à procura de comandos SQL e verificar se esses comandos são compatíveis com a nova versão. Isso se estes softwares conseguirem encontrar os comandos SQL no meio de tanta concatenação.

Neste artigo será apresentado como manter uma tabela de pessoas no banco de dados SQL Server utilizando SP. Será apresentado como criar uma SP que recebe parâmetros, e com base nestes parâmetros insere, altera e exclui registros na tabela pessoa. Para concluir, também será apresentado como aplicar tratamento de exceções e de transações na SP.

[subtitulo]Criando a Base de Dados [/subtitulo]

Inicie criando a base de dados, também conhecida como catálogo, que é utilizada para agrupar as tabelas e outros recursos pertencentes à mesma aplicação. Crie uma base de dados (de acordo com a Listagem 1) com o nome ArtigoSqlMagazine, onde iremos definir a tabela pessoa e a SP responsável por manter esta tabela.

Listagem 1. SQL criar Database.

  CREATE DATABASE ArtigoSqlMagazine 

[subtitulo]Criando a Tabela [/subtitulo]

Crie uma tabela com o nome tblPessoa e adicione os campos IdPessoa, Nome, DataNascimento e Sexo, conforme a Listagem 2.

Listagem 2. SQL criar tabela Pessoa.

  CREATE TABLE tblPessoa (
       IdPessoa INT IDENTITY(1,1) NOT NULL,
       Nome VARCHAR(100) NOT NULL,
       DataNascimento DATETIME NOT NULL,
       Sexo BIT NOT NULL,
       CONSTRAINT PK_tblPessoa PRIMARY KEY (IDPessoa)) 
"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?