2016-10-18 3 views
1

Я хочу вставить данные из нескольких таблиц. Из этой таблицы таблицы temp, в которой он поступает несколько данных, то есть 46 и 47, имя поля которого является productid. Но он не вставляет в другую таблицу несколько условий.Вставить данные из таблицы temp с помощью хранимой процедуры

Вот мой запрос:

Insert into #temp 
    select Product.Id 
    from Product 
    left outer join In_abc_Product ON In_abc_Product.ID = Product.ID 
    where In_abc_Product.ID IS NULL 

BEGIN 
    select * from #temp 

    --Insert data into In_abc_Product where condition is p.Deleted = 'False' or p.Published = 'True' or VisibleIndividually = 'True' 
     Insert into In_abc_Product(ProductId, SolrStatus, IsDeleted, InTime, StoreId,LanguageId) 
     select tmp.productid,1,0,GETDATE(),s.Id,l.Id from Language l, Store s, #temp tmp left join Incremental_Solr_Product isp on isp.ProductId = tmp.productid 
     left join product p on p.id = isp.ProductId where isp.Id is NULL and p.Deleted = 'False' or p.Published = 'True' or VisibleIndividually = 'True' 

    --Insert data into In_abc_Product where condition is p.Deleted = 'True' or p.Published = 'False' or VisibleIndividually = 'False' 
     Insert into Incremental_Solr_Product(ProductId, SolrStatus, IsDeleted, InTime, StoreId,LanguageId) 
     select tmp.productid,1,0,GETDATE(),s.Id,l.Id from Language l, Store s, #temp tmp left join Incremental_Solr_Product isp on isp.ProductId = tmp.productid 
     left join product p on p.id = isp.ProductId where isp.Id is NULL and p.Deleted = 'True' or p.Published = 'False' or VisibleIndividually = 'False' 

    END 
END 
+4

* Никогда не используйте запятые в предложении 'FROM'. * Всегда * используйте правильный, явный синтаксис JOIN. –

+0

Оператор select в предложении insert возвращает что-то? Если да, вы откатываете транзакцию, если нет, то исправьте ее. –

ответ

0

--Пожалуйста проверить это может достигнуть до вашей потребности.

Insert into #temp 
select Product.Id from Product 
LEFT OUTER JOIN In_abc_Product ON In_abc_Product.ID = Product.ID 
WHERE In_abc_Product.ID IS NULL 

    BEGIN 
    select * from #temp 

Insert into In_abc_Product(ProductId, SolrStatus, IsDeleted, InTime, StoreId,LanguageId) 
     select tmp.productid,1,0,GETDATE(),(SELECT S.Id FROM Store s),(SELECT l.Id Language l) 
     from #temp tmp 
     left join Incremental_Solr_Product isp on isp.ProductId = tmp.productid 
     left join product p on p.id = isp.ProductId 
     where isp.Id is NULL and p.Deleted = 'False' or p.Published = 'True' or VisibleIndividually = 'True' 


      Insert into Incremental_Solr_Product(ProductId, SolrStatus, IsDeleted, InTime, StoreId,LanguageId) 
     select tmp.productid,1,0,GETDATE(),(select s.Id from Store s),(select l.Id from Language l) 
     from #temp tmp 
     left join Incremental_Solr_Product isp on isp.ProductId = tmp.productid 
     left join product p on p.id = isp.ProductId where isp.Id is NULL and p.Deleted = 'True' or p.Published = 'False' or VisibleIndividually = 'False' 

      END 
END 
+0

nop это не работает, он выходит так же, как мой код – karan

Смежные вопросы