Array
(
)

Função

Nautam
   - 11 set 2006

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???

Psergio.p
   - 11 set 2006

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!

Nautam
   - 11 set 2006

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

Psergio.p
   - 12 set 2006

O que acontece?

Nautam
   - 12 set 2006

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.

Psergio.p
   - 12 set 2006

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