Função

11/09/2006

0

Ola, estou com dificuldades com SQL, estou fazendo uma função a onde tem que passar uma lista de código de produtos, mais o Sql server não está listando os produtos, quando e passado mais de um código.
Abaixo um exemplo do meu teste.


DECLARE @te varchar(250)
DECLARE @ta varchar(250)

set @te = ´´´´+ ´ALBTA06225´ + ´´´´+ ´,´ + ´´´´ + ´ALBTA06099V1´ +´´´´
select @te

Aparece: ´ALBTA06225´ , ´ALBTA06099V1´
Está correto.

set @ta = ´select * from produtos where Pro_codnosso in (´+ @te +´)´
select @ta

Aparece: select * from produtos where Pro_codnosso in (´ALBTA06225´ , ‘ALBTA06099V1´ )
Está correto.

select * from produtos where Pro_codnosso in (@te)
não funciona não aparecer os produtos (esses produtos tem na tabela)

Alguém sabe porque isso acontece??? Não deveria funcionar???


Nautam

Nautam

Responder

Posts

11/09/2006

Psergio.p

Caro amigo, tenta assim:

DECLARE @SQL NVARCHAR(200)

SET @SQL = ´SELECT * FROM Produtos WHERE Pro_codnosso IN(´ + @te + ´)´

EXEC sp_executesql @SQL


Observe o resultado, se não der certo poste novamente!


Responder

11/09/2006

Nautam

Mais só que usando a função não aceita o sp_executesql! :roll:


Responder

12/09/2006

Psergio.p

O que acontece?


Responder

12/09/2006

Nautam

Aconteceu esse erro ´Only functions and extended stored procedures can be executed from within a function.´

Agora eu fiz com procedure e tabela temporaria, ficou até mais rápido.
fez o calculo de venda de 10500 produtos em um período de 1ano e meio em 4s.

Obrigado pela ajuda.


Responder

12/09/2006

Psergio.p

Estamos aí para ajudar!
Qualquer problema é só postar!


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar