СЗЛ: Использование INSERT в выписке SELECT

У меня есть заявление S'L SELECT, которое создаст свои результаты в формате XML. Я хотел бы, чтобы INSERT в другую таблицу (вход через вставку) каждый раз, когда строка выбрана из оригинального заявления SELECT. Есть ли в любом случае включить ЗАЯВЛЕНИЕ INSERT внутри заявления SELECT?

    SELECT      cs_ads_StoreLocations.LocationGUID, *Bunch of Selects AS Distance 
FROM         *Bunch of Inter Joins*

WHERE     *Bunch of conditions*
ORDER BY *You don't want to know*
FOR XML AUTO

INSERT INTO cs_ads_StoreLog (LocationGUID) VALUES (*DISTINCT cs_ads_StoreLocations.LocationGUID from select statement above*)

Это всего лишь пример кода, который имеет INSERT за пределами заявления SELECT. Мне нужно что-то, что имеет его внутри SELECT заявление или другой способ запуска INSERT

Просто уточнить. Этот пример кода является частью сохраненного Proc

Ответ на: "СЗЛ: Использование INSERT в выписке SELECT"

Количество ответов:2

Может быть, динамический S'L бы решить эту проблему? Пример here. Or maybe you could store the values in a table var, and do your insert on that. .Или, может быть, вы могли бы хранить значения в таблице var, и сделать вставку на этом.

INSERT will actually accept a фактически примет SELECT as its input. You can just use this command (your в качестве своего вклада. Вы можете просто использовать эту команду (ваш SELECT copied as a subquery, though you could probably refactor it to return those distinct GUIDs without a subquery...but I'd need to see the whole monster). скопированы в качестве подуверия, хотя вы могли бы, вероятно, рефакторинг его, чтобы вернуть эти различные GUIDs без subquery ... но мне нужно увидеть весь монстр).

insert into (cs_ads_StoreLog)
select distinct
    a.LocationGUID
from
    (SELECT
        cs_ads_StoreLocations.LocationGUID, *Bunch of Selects AS Distance 
    FROM
        *Bunch of Inter Joins*
    WHERE
        *Bunch of conditions*
    ORDER BY 
        *You don't want to know*
    ) a

Затем, вы можете просто вернуть SELECT that you have (it'll be cached, so you don't need to worry about performance hits too much)., что у вас есть (это будет кэширован, так что вам не нужно беспокоиться о производительности хитов слишком много).