Ir para conteúdo

POWERED BY:

Arquivado

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

zenfra

cursor com passagem de parâmentro

Recommended Posts

Boa noite,

 

gostaria de tirar uma dúvida sobre como criar um cursor onde possa ao abri passar valor para um parâmentro!

 

Vamos supor que tenho a seguinte estrutura de tabela

 

NM_ESTADO_ID INT

DS_ESTADO_NOM VARCHAR(50)

 

Contendo os seguintes registros

 

 

NM_ESTADO_ID DS_ESTADO_NOME

------------------- ------------------------

1 SP

2 RJ

3 TO

4 PA

5 RR

 

 

 

criarei um corsor que trás todos os registros

 

 

DECLARE @DS_ESTADO_NOME VARCHAR(60)
DECLARE NEWCURSOR CURSOR LOCAL FOR SELECT DS_ESTADO_NOME FROM TB_MENU

OPEN NEWCURSOR

FETCH NEXT FROM NEWCURSOR INTO  @DS_MENU_DESC

WHILE @@FETCH_STATUS = 0
BEGIN

PRINT  @DS_MENU_DESC
FETCH NEXT FROM NEWCURSOR INTO  @DS_ESTADO_NOME
END

CLOSE NEWCURSOR

DEALLOCATE NEWCURSOR

 

A saída disso seria

 

 

queria passar como parâmeto um valor para filtrar por nm_estado_id

 

SP

RJ

TO

PA

RR

 

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola.

A ideia de cursor em SQL server nao e esta que você esta aplicando.

para o seu caso, o recomendavel e uma SP mas se mesmo assim você necessitar de um cursor com passagem de parametro, deve colocar o cursor dentro de uma SP, assim você passa o parametro para a SP e trabalha este parametro como uma variavel dentro do cursor.

 

Abraco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, mas existe uma forma de criaro cursor já definindo parâmetros de entrada, estou precisando relembrar essa sintaxe!

É algo do tipo:

 

DECLARE NOMECURSOR (@ID INT) CURSOR FOR SELECT * FROM TABELA WHERE ID = @ID

 

NO MOMENTO DE DAR O OPEN NOMECURSOR, FICARIA ASSIM:

 

OPEN NOMECURSOR 1

 

Mas dessa forma está dando erro, não estou me lembrando da sintaxe correta de declaração

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.