Получить данные из Select в предложении output инструкции Insert
У меня есть запрос, как показано ниже
INSERT INTO iProc.TblContracItemDt ( ClientId, ContractId, ItemId, ItemPkgId, IsOpenCont, OpenBasePrice, IsActive, CreatedBy, CreatedOn, ModifiedBy, ModifiedOn, IsDelete ) OUTPUT INSERTED.ContItemDtId,INSERTED.ItemId,a.ItemLineNo INTO @ContracItemDtOutput SELECT ClientId, @Pid, ItemId, ItemPkgId, IsOpenCont, OpenBasePrice, IsActive, CreatedBy, GETDATE() AS CreatedOn, ModifiedBy, GETDATE() AS ModifiedOn, IsDelete FROM @TVPContracItemDt a
при выполнении этой операции возникает следующая ошибка
Msg 4104, Level 16, State 1, Procedure Usp_TblContractInsert, Line 100 [Batch Start Line 7] The multi-part identifier "a.ItemLineNo" could not be bound.
пожалуйста, помогите мне решить эту проблему
Что я уже пробовал:
Я попытался выполнить запрос .
INSERT INTO iProc.TblContracItemDt ( ClientId, ContractId, ItemId, ItemPkgId, IsOpenCont, OpenBasePrice, IsActive, CreatedBy, CreatedOn, ModifiedBy, ModifiedOn, IsDelete ) OUTPUT INSERTED.ContItemDtId,INSERTED.ItemId,a.ItemLineNo INTO @ContracItemDtOutput SELECT ClientId, @Pid, ItemId, ItemPkgId, IsOpenCont, OpenBasePrice, IsActive, CreatedBy, GETDATE() AS CreatedOn, ModifiedBy, GETDATE() AS ModifiedOn, IsDelete FROM @TVPContracItemDt aно эта ошибка показывает
CHill60
Вы не можете использовать столбцы из SELECT, только из INSERTED. Поскольку вы не вставляете ItemLineNo в таблицу, вы не можете ссылаться на него в выходных данных.