Ir para conteúdo

Arquivado

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

Eduardo Sucena

@var = Execute(String de uma query)

Recommended Posts

Salve salve comunidade,olha o que quero fazer:@Query = "SELECT * FROM TB_VENDA"@QTDE_LINHAS = EXECUTE ('SELECT count(*) FROM (' + @QUERY + ) AS TABELA_DINAMICA )Na verdade quero jogar o resultado de EXECUTE em uma variável. Alguem sabe como fazer? Pode ser outros comandos ao ínvez do EXECUTE.Desde já obrigada! :D []sEduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Eduardo.

 

Acho que não entendi direito a sua dúvida, você quer saber qual o total de linhas de uma tabela?

 

Se for isso você pode usar :

 

Declare @var_qtde_ln Int

Select @var_qtde_ln = count(*) From table_name

 

 

O comando que você montou olha só como ficaria :

 

@Query = "SELECT * FROM TB_VENDA"

@QTDE_LINHAS = EXECUTE ('SELECT count(*) FROM (' + @QUERY + ) AS TABELA_DINAMICA )

Ou seja

@QTDE_LINHAS = EXECUTE ('SELECT count(*) FROM (SELECT * FROM TB_VENDA) AS TABELA_DINAMICA) = isso não funciona.

 

Esperto ter ajudado.

 

Att,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso fazer o seguinte

 

O usuário me passará uma Query por parâmetro ( uma string ). Quero saber quantas linhas a Query dele retorna para poder continuar executando o que necessito.

 

Vou fazer uma procedure dinâmica, que possuirá o SELECT fornecido pelo usuário.

 

Na verdade preciso saber como armazenar em uma variável o que um EXECUTE me retornar.

 

Alguem sabe como fazer isso?

Ou se existe uma outra maneira de efetuar esse procedimento?

 

 

Meu msn: edusucena@hotmail.com

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eduardo, boa tarde.

 

Tente isso, talvez ajude.

 

Use TEMPDB

GO

 

Create Table TESTE

(

Col1 Int,

Col2 VarChar(10)

)

GO

 

Insert Into teste (col1, col2) values (1, 'teste1')

Insert Into teste (col1, col2) values (2, 'teste2')

Insert Into teste (col1, col2) values (3, 'teste3')

Insert Into teste (col1, col2) values (4, 'teste4')

Insert Into teste (col1, col2) values (5, 'teste5')

GO

 

Declare @var_comando VarChar(1000),

@var_user_comm VarChar(500),

@var_posicao Int

 

Set @var_user_comm = 'Select * From TESTE'

Select @var_posicao = CharIndex(' from ', @var_user_comm, 1)

 

 

Set @var_comando = Left(@var_user_comm, @var_posicao) + ' Into ##temp ' + Substring(@var_user_comm, @var_posicao + 1, 500 - @var_posicao)

Select @var_comando

 

Exec (@var_comando)

 

Select count(*)

From ##temp

GO

 

Drop table ##temp

Drop table teste

GO

 

Espero ter ajudado.

 

Att,

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.