SQL Server 2008: дата обновления из строки в том же столбце - PullRequest
1 голос
/ 18 августа 2011

Я часто видел этот вопрос, но мне не удается заставить мой SQL работать, поэтому я надеюсь, что кто-то может помочь. Я подтвердил, что этот код будет работать в Access, но он не работает с SQL Server 2008.

UPDATE shop_orders AS t1, shop_orders AS t2 
SET t1.shipstreet1 = t2.shipstreet1,
    t1.shipstreet2 = t2.shipstreet2, 
    t1.shipcity = t2.shipcity, 
    t1.shipregionstate = t2.shipregionstate
WHERE t1.orderid=3292 
  AND t2.orderid=3641;

Рекомендации

Ответы [ 2 ]

3 голосов
/ 18 августа 2011

В T-SQL SQL Server нельзя иметь несколько таблиц в предложении UPDATE, а также нельзя указывать для этой таблицы псевдоним таблицы.

Вам необходимо использовать:

UPDATE shop_orders 
FROM shop_orders AS t2 
SET shipstreet1 = t2.shipstreet1,
    shipstreet2 = t2.shipstreet2, 
    shipcity = t2.shipcity, 
    shipregionstate = t2.shipregionstate
WHERE shop_orders.orderid = 3292 
  AND t2.orderid = 3641;
0 голосов
/ 18 августа 2011

Синтаксис для Update From отличается для SQL-сервера, один и тот же запрос не будет работать в обоих.

См .: Обновление SQL из одной таблицы в другую на основе совпадения идентификатора

Подробнее о синтаксисе обновления с.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...