Sql 更新和插入查询

Sql 更新和插入查询,sql,sql-server-2008,Sql,Sql Server 2008,我想在查询中同时使用insert和update。如何将其用于 INSERT INTO [Sales_Detail_Table] ([RecieptNumber], [ID], [Quantity] ) VALUES (?, ?, ?) UPDATE dbo.Medicine SET Quantity = ? WHERE (ID = ?) 我想更新药品表中的数量,即(设置medicine.quantity=medicine.quantity-Sale

我想在查询中同时使用insert和update。如何将其用于

INSERT INTO [Sales_Detail_Table] ([RecieptNumber], [ID], [Quantity] ) VALUES (?, ?, ?)
UPDATE       dbo.Medicine
SET           Quantity = ?
WHERE        (ID = ?)

我想更新药品表中的数量,即(设置medicine.quantity=medicine.quantity-Sales\u Detail\u table quantity,其中ID=Sales\u Detail\u table.ID已输入)

您想将它们一起使用是什么意思?如果要确保这两个操作都发生,可以对INSERT和UPDATE语句使用事务。这将确保两条语句作为单个工作单元失败或完成。

如果要同时插入和更新,请查看以下内容:

merge dbo.target main
using #updatedata new
ON main.ID=new.ID
WHEN MATCHED THEN
    UPDATE
    SET main.field=new.field
WHEN NOT MATCHED BY TARGET THEN
    INSERT (field)
    VALUES (new.field)

我建议通过删除Medicine表中的quantity字段来规范数据库。您应该能够在需要时随时计算它。在表
Sales\u Detail\u table
中插入时使用触发器fire更新表
Medicine