Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal, muitos de vocês ja devem ter dado de frente com o seguinte Problema.
Por exemplo um Produtoque tem várias Ofertas.
Qual a melhor maneira de receber uma Lista de IDs(exemplo: Produto 1 tem as Ofertas 1,5,9) e salvar na minha Tabela ProdutoOfertas?
Tenho na Tabela ProdutoOfertas os seguintes Campos: ProdutoOfertaID,ProdutoID,OfertaID
Ja resolvi este "Problema" de várias formas, a última foi a seguinte:
DECLARE @P_OfferID varchar(10), @Pos int
SET @P_OfferIDList = LTRIM(RTRIM(@P_OfferIDList)) + ','
SET @Pos = CHARINDEX(',', @P_ResponsibleIDList, 1)
DELETE FROM ProjectOffers WHERE ProjectID = @P_ProjectID;
IF REPLACE(@P_OfferIDList, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @P_OfferID = LTRIM(RTRIM(LEFT(@P_OfferIDList, @Pos - 1)))
IF @P_OfferID <> ''
BEGIN
INSERT INTO ProjectOffers
(
ProjectID,
OfferID
)
SELECT
@P_ProjectID
,CAST(@P_OfferID AS int)
END
SET @P_OfferIDList = RIGHT(@P_OfferIDList, LEN(@P_OfferIDList) - @Pos)
SET @Pos = CHARINDEX(',', @P_OfferIDList, 1)
END
END
Porém gostaria da opiniao de vocês, se essa é a melhor maneira de Inserir uma lista de IDs recebidos.
Lembrando que a primeira linha do Código (DELETE FROM...) é utilizada para zerar os dados da Tabela para inserí-los novamente, ja que um UPDATE neste caso complicaria um poucos mais o código. O Problema do DELETE é que sempre serao gerados novos IDs ProdutoOfertaID, que no meu caso nao teria Problema, pois esse campo nao tem relacao com nenhuma outra Tabela, mas talvez no futuro? Ou seja, o que vocês me aconselham?
Merci!
Tony Montana
Carregando comentários...