#sql #sql-update #common-table-expression #output-clause
#sql #sql-обновление #common-table-expression #output-предложение
Вопрос:
Я пытаюсь использовать предложение Output с инструкцией update (используя CTE). Но я неоднократно получаю ошибку «не удалось связать многочастный идентификатор».
;With CTE_Duplicates as
( SELECT
t1.[Id] as ID1, t2.[Id] as ID2
FROM
(
SELECT
Id, Value,TypeID, DatabaseID
FROM
TypeValue
where DatabaseID in (1)
) T1
JOIN
(
SELECT
Id,Value,TypeID, DatabaseID
FROM
TypeValue
where DatabaseID in (2)
) T2 on
T1.Value = T2.Value AND T1.dTypeID = T2.TypeID and T2.DatabaseID in (1,2)
)
update Scenario set Scenario .[Symbol] = CTE_Duplicates.[ID1]
output inserted.Symbol, deleted.Symbol, Scenario.ID
into Log(newid,oldid, TableID)
from CTE_Duplicates INNER JOIN Scenario ON CTE_Duplicates.ID1=Scenario.Symbol
where Scenario.[Symbol]= CTE_Duplicates.[ID2]
Ошибка: сообщение 4104, уровень 16, состояние 1, строка 25
Сценарий «Многочастный идентификатор «.Идентификатор» не может быть привязан.
Комментарии:
1. Вам разрешено ссылаться только
inserted
на иdeleted
вoutput
предложении.2. есть идеи, как мы можем вставить этот конкретный столбец в этот сценарий? заранее спасибо
3. . . Вы не можете. Вы должны присоединиться обратно к вставляемым данным.