Esse artigo faz parte da revista SQL Magazine edição 61. Clique aqui para ler todos os artigos desta edição

auto; tab-stops: 35.4pt; punctuation-wrap: hanging; mso-vertical-align-alt: auto" align=left>No Desafio SQL da edição 57 apresentamos dois métodos diferentes para se identificar quais valores não aparecem numa tabela que deveria ter códigos seqüenciais.

O desafio tratava de testes de uma aplicação de ativação de linhas telefônicas. Os casos de teste usavam números de telefones (ou TNs, na sigla em inglês) seqüenciais, mas alguns testes haviam falhado. Nosso trabalho foi identificar quais TNs não constavam na tabela de destino.

No portal da SQL Magazine você encontrará disponível para download o script completo do desafio anterior. O script inclui as instruções para reprodução do ambiente (tabelas usadas) e mais as duas soluções apresentadas.

Ambas soluções usavam a tabela de destino tblTN. A diferença residia na forma de emular a lista de TNs testadas. Nós criamos uma tabela de origem usando estratégias diferentes:

1.      a primeira solução usou uma variável de tabela, inserindo os TNs através de um laço;

2.      a segunda solução usou um contador de registros atuando numa tabela pré-existente.

 

A Listagem 1 apresenta a primeira solução, enquanto que a Listagem 2 mostra a segunda.

 

Listagem 1. Solução usando variáveis de tabela (T-SQL).

1        --1 definindo as variáveis principais e valores iniciais

2        DECLARE @intTNInicial        INT

3        DECLARE @intQtdTN           INT

4        DECLARE @intContador       INT

5       

6        SET @intTNInicial = 1131334101

7        SET @intQtdTN = 10

8       

9        --2 definindo variável de tabela

10      DECLARE @tblVIRTUAL TABLE (codTN INT)

...

Quer ler esse conteúdo completo? Tenha acesso completo