Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ValterG2

Percorrendo linhas de uma tabela

Recommended Posts

Pessoal, boa tarde.

Gostaria de saber apenas como percorro linhas de uma tabela SQL. Por exemplo, estou realizando uma pesquisa em SAP na qual o usuario emite Notas Fiscais de Entrada, e preciso fazer o bloqueio de notas com a mesma numeracao. Essa numeracao é armazenada numa tabela com uma coluna, mas nao sei como percorrer as linhas dessa coluna. Sendo mais exato, se caso tiver nesta coluna o valor 1, o sistema entra no @error_message 'erro' e nao deixa cadastrar uma nova nota com esse valor. Já pesquisei algo como Cursores, mas nao entendi muito bem. Alguem pode me dar uma explicação ?? Grato no momento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Valter

 

Bem vindo ao fórum.....

 

Pode ser feito deste modo:

http://forum.imasters.com.br/index.php?/topic/220851-simula-array-ou-vetor-sql/

 

Aqui tem um exemplo bacana de cursores:

http://forum.imasters.com.br/index.php?/topic/224865-transformando-varias-linhas-em-uma-so-coluna/

 

Cuidado com performance....

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, legais os exemplos hein cara...Muito bom os links...

Mas eu precisava de algo um pouco mais simples, pois estou comecando a pouco tempo com Banco de Dados...Um desses links que voce mandou nos mostra algo de passagem de um vetor ou array como parâmetro para uma stored procedure. Ja eu preciso apenas saber como consigo achar valores repetidos numa tabela. Ex.

 

Idade_Func

 

23 <-

25

26

27

28 <-

28 <-

29

 

Se caso eu inserir uma nova idade 23 o sistema me envia um alerta.

Agradeco por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, se você precisa apenas saber se a idade já existe você pode simplesmente fazer um select.

 

declare @count int

set @count = (select count(*) from tabela where idade = 23)

if @count > 0

begin

... já existe!

end

 

Agora, se precisa percorrer os registros realmente, ai você tem que usar cursor! Dá uma olhada no segundo link do A.Jr

 

terá que usar basicamente isso:

 

declare x cursor for select campo from tabela
declare @campo int
open x
fetch next from x into @campo
while @@fetch_Status=0
begin
print(@campo)
fetch next from x into @campo
end
close x
deallocate x

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.