Função
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???
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
Curtidas 0
Respostas
Psergio.p
11/09/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!
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!
GOSTEI 0
Nautam
11/09/2006
Mais só que usando a função não aceita o sp_executesql! :roll:
GOSTEI 0
Psergio.p
11/09/2006
O que acontece?
GOSTEI 0
Nautam
11/09/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.
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.
GOSTEI 0
Psergio.p
11/09/2006
Estamos aí para ajudar!
Qualquer problema é só postar!
Qualquer problema é só postar!
GOSTEI 0