这是我想对MySQL数据库做的。
我想做的是:
SELECT *
FROM itemsOrdered
WHERE purchaseOrder_ID = '@purchaseOrdered_ID'
AND status = 'PENDING'
如果不返回任何行,则可以通过If (dr。HasRows == false),我现在将在purchaseOrder数据库中创建一个UPDATE:
UPDATE purchaseOrder
SET purchaseOrder_status = 'COMPLETED'
WHERE purchaseOrder_ID = '@purchaseOrder_ID'
我怎样才能缩短这个过程呢?
sql server 2008之后提供了基于单个匹配语句的Merge插入、更新和删除操作,也允许您加入。下面的例子可能会对你有所帮助。
MERGE Target AS T
USING Source AS S
ON (T.EmployeeID = S.EmployeeID)
WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%'
THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED
THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE AND T.EmployeeName LIKE 'S%'
THEN DELETE
OUTPUT $action, inserted.*, deleted.*;
像这样,您可以在一条语句中插入、更新和删除。
要了解更多信息,你可以参考官方文件
https://technet.microsoft.com/en-us/library/bb522522 (v = sql.105) . aspx