У меня есть таблица с именем ItemTable
, в которой есть столбцы:
ID (identity col int), primary key, foreign key constraint with ProductTable
Col (varchar(50))
ColOther (varchar(50))
Latest (bit)
Time (autogenerated datetime)
Я делаю запрос:
UPDATE ItemTable
SET Col = 'new', ColOther = 'newother'
OUTPUT deleted.Col, deleted.ColOther
WHERE ID = 100;
, который прекрасно обновляет строку и даетправильный вывод:
| Col | ColOther |
| --------- |:--------:|
| old | oldother |
Я хотел бы INSERT
этот вывод (и константа Latest = 0
) к тому же ItemTable
в том же UPDATE
оператор.
Я пытался:
INSERT INTO ItemTable (Col, ColOther, Latest)
UPDATE ItemTable
SET Col = 'new', ColOther = 'newother'
OUTPUT deleted.Col, deleted.ColOther, 0
WHERE ID = 100;
, что выдает ошибку:
Неверный синтаксис рядом с ключевым словом "ОБНОВЛЕНИЕ".
И:
UPDATE ItemTable
SET Col = 'new', ColOther = 'newother'
OUTPUT deleted.Col, deleted.ColOther, 0 INTO ItemTable
WHERE ID = 100;
, что приводит к ошибке:
Таблица назначения ItemTable предложения OUTPUT INTO не может быть по обе стороны ототношение (первичный ключ, внешний ключ).Найдено ссылочное ограничение 'FK_ProductTable_ItemTable'.