的正確的語法是
DELETE [ FROM ] { <object> }
[ FROM <table_source>]
[ WHERE { <search_condition> } ]
應用您的例子,這會成爲
DELETE FROM Reg
FROM Reg
INNER JOIN RegDoc ON Reg.RegId = RegDoc.RegId
INNER JOIN Doc ON RegDoc.DocId = Doc.DocId
WHERE Doc.Name LIKE N'%Title%'
注引用到Reg
表
這可以通過混疊(雖然有在這種情況下沒有必要),進一步縮短
DELETE FROM r
FROM Reg r
INNER JOIN RegDoc ON r.RegId = RegDoc.RegId
INNER JOIN Doc ON RegDoc.DocId = Doc.DocId
WHERE Doc.Name LIKE N'%Title%'
MSDN例
DELETE FROM Sales.SalesPersonQuotaHistory
FROM Sales.SalesPersonQuotaHistory AS spqh
INNER JOIN Sales.SalesPerson AS sp
ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;
Oughtta」被'DELETE FROM REG ...'沒有? – Farray 2011-12-28 18:07:36
@Farray兩人都會工作。 – ean5533 2011-12-28 18:13:48
@Farray - 'DELETE FROM'是正確的,但第一個'FROM'確實可以省略。這有點像寫出'LEFT OUTER JOIN',其中'OUTER'也是多餘的,但我仍然傾向於完全寫出它。 – 2011-12-28 18:13:49