Ir para conteúdo

POWERED BY:

Arquivado

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

cristianof

Retorna valores aleatórios de uma tabela

Recommended Posts

Bom dia,

 

Estou tentando retornar valores randômicos de uma tabela, pois toda vez que a stored procedure for executada, ela tem que retornar um valor diferente, mas não sei como fazer, estou tentando usando a instrução abaixo:

 

Declare @Contador smallint

set @Contador = 0

DECLARE @Total INT

set @Total = select Count(id) FROm tblTabela1

while @Contador < @Total

begin

SELECT id , Campo2 from tblTabela1

SET NOCOUNT ON

set @Contador = @Contador + 1

set nocount off

end

 

Até tentei criar uma tabela temporária

 

Declare @Contador smallint

set @Contador = 0

DECLARE @Total INT

select Count(id) as total into #TblTemporaria from tblTabela1

while @Contador < #TblTemporaria.Total

begin

SELECT id , Campo2 from tblTabela1

SET NOCOUNT ON

set @Contador = @Contador + 1

set nocount off

end

eu consegui retornar o valor total dos registros, exemplo 10, mas não consigo armazena-la em uma variavel e aí sim fazer o laço.

 

Como devo fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente dar uma olhada em aplicação de cursores em procedures.

No Help do Query Analyser, Transact SQL busque por "CURSOR_STATUS", o mesmo possibilita a você criar um cursor para passar por registros na tabela, como se fosse um recordSet mesmo. Da uma olhada e ve se atende, senao tenta algum tipo de funcao para retornar valor aleatorios (RAND(), RANDOM(), etc.)

 

Bom dia,

 

Estou tentando retornar valores randômicos de uma tabela, pois toda vez que a stored procedure for executada, ela tem que retornar um valor diferente, mas não sei como fazer, estou tentando usando a instrução abaixo:

 

Declare @Contador smallint

set @Contador = 0

DECLARE @Total INT

set @Total = select Count(id) FROm tblTabela1

while @Contador < @Total

begin

SELECT id , Campo2 from tblTabela1

SET NOCOUNT ON

set @Contador = @Contador + 1

set nocount off

end

 

Até tentei criar uma tabela temporária

 

Declare @Contador smallint

set @Contador = 0

DECLARE @Total INT

select Count(id) as total into #TblTemporaria from tblTabela1

while @Contador < #TblTemporaria.Total

begin

SELECT id , Campo2 from tblTabela1

SET NOCOUNT ON

set @Contador = @Contador + 1

set nocount off

end

eu consegui retornar o valor total dos registros, exemplo 10, mas não consigo armazena-la em uma variavel e aí sim fazer o laço.

 

Como devo fazer?

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.