#sql
Вопрос:
Комментарии:
1. Не копируйте данные между таблицами. Вместо этого создайте представление — в нем всегда будут обновленные данные.
Ответ №1:
Попробуйте что-нибудь вроде : (я еще не тестировал это)
BEGIN TRANSACTION
UPDATE tableA
SET tableA.Price = tableB.Price
FROM tableA, tableB
WHERE tableA.Item = tableB.Item
UPDATE tableA
SET tableA.Limit = tableC.Limit
FROM tableA, tableC
WHERE tableA.CName = tableC.CName
COMMIT
Комментарии:
1. пробовал, но строки не обновлялись
2. Сначала попробуйте только с
tableA
иtableB
, как :UPDATE tableA SET tableA.Price = tableB.Price FROM tableA, tableB WHERE tableA.Item = tableB.Item
3. Да, одно условие работает, но не оба, как я могу заполнить обе колонки в одном запросе?
4. я считаю, что вам следует использовать транзакцию , я отредактировал свой пост
Ответ №2:
попробуйте выполнить этот запрос
UPDATE A a
SET a.price = b.price, a.limit = c.limit
FROM B b, C c
WHERE a.item = b.item and a.cname = c.cname;
Комментарии:
1. выдача ошибки Неправильный синтаксис рядом с «a» и удаление псевдонима , дающего 0 обновленных строк
2.
UPDATE A SET A.price = B.price, A.limit = C.limit FROM A INNER JOIN B ON A.item = B.item INNER JOIN C ON A.cname = C.cname;