2016-05-25 3 views
0

Я пытаюсь удалить одно и то же самое высокое значение из нескольких таблиц, однако я получаю синтаксическую ошибку для t1 и t3. Есть идеи, как это исправить? Кстати, я использую MS SQL (TSQL)SQL Удаление строк из нескольких таблиц

DELETE FROM ProductsOrders t1, Orders t2 
    JOIN (SELECT MAX(OrderID) FROM Orders) t3 
WHERE t1.OrderID = t3.OrderID 
AND t2.OrderID = t3.OrderID 
+0

почему вы удалили ответ? –

+0

Я не удалял ответ ... – TesteroniPeperoni

+0

Даже мои правки исчезли. Я предполагаю, что это веб-страница либо поместилась в резервную копию, либо что-то еще ... – TesteroniPeperoni

ответ

0

Вы не можете удалять из нескольких таблиц с помощью одного оператора в заявлении TSQL, за исключением каскадного удаления.

Вот простое решение:

DECLARE @MaxOrderID INT 

BEGIN TRAN 

SELECT @MaxOrderID = Max(OrderID) FROM Orders 

DELETE FROM ProductOrders WHERE OrderID = @MaxOrderID 
DELETE FROM Orders WHERE OrderID = @MaxOrderID 

COMMIT TRAN