|
||
|
|
» Início » Desenvolvimento » Banco de dados e SQL » SQL Server: Geração de seqüenciais de forma automática
|
|
Avaliação:
![]() ![]() ![]() ![]() | Publicado em: 20/09/2007SQL Server: Geração de seqüenciais de forma automática
Gustavo Maia Aguiar é administrador de Empresas pela Universidade de Brasília (UnB) e pós-graduado em bancos de dados pela Universidade Católica de Brasília (UCB), atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MOS, MCDBA, MCAD, MCTS (SQL 2005), MCITP (DB Dev), MCITP (DB Admin), MCT e Itil Certified Professional) e suas áreas de interesse incluem .NET, XML, SQL Server, banco de dados em geral e Business Intelligence. É membro ativo dos fóruns MSDN e TechNet além de moderador da comunidade SQL Server Brasil (Orkut).
Uma das necessidades comuns em projetos de bancos de dados é a geração de automática de números (seqüências). Muitas vezes essas seqüências são utilizadas como identificador de uma linha ou ocorrência ou ainda como chaves artificiais para identificação de um registro de forma única. No passado, muitos bancos não ofereciam mecanismos para a geração de seqüenciais de forma automática. O próprio padrão ANSI que estipula as regras a serem seguidas pelos fabricantes de SGBDs também não estipula uma sintaxe comum e nem que os bancos de dados devam ter essa funcionalidade. A saída natural (e muito utilizada há alguns anos atrás) era a construção de tabelas para armazenar os números a serem utilizados para geração de seqüenciais ou ainda recorrer a mecanismos de consulta, a exemplo do popular MAX + 1. Embora essas técnicas sejam eficazes e possam de fato gerar uma seqüência, elas apresentam fortes limitações quando utilizadas em ambientes de grande concorrência além de representarem um esforço adicional no desenvolvimento da solução. Tendo em vista o quão rotineira é a criação de seqüências, a grande maioria dos bancos de dados (inclusive os OpenSource) oferecem mecanismos de geração automática de seqüenciais. Nesse artigo será demonstrado como fazer isso no SQL Server. O artigo é válido para o SQL Server 7, 2000 e 2005. Em virtude da diferença entre as ferramentas gráficas Enterprise Manager e SQL Server Management Studio, o artigo utiliza apenas as construções em Transact-SQL. Ao término do artigo, está disponível um projeto (SQL Server 2005) com os scripts utilizados. Os scripts podem ser utilizados no SQL Server 7 e 2000. ![]() |
|
|