在SQL Server Management Studio中创建下面的存储过程:
CREATE PROCEDURE AddNewOrder
@OrderDate DATE,
@CustomerID INT,
@ProductList XML
AS
BEGIN
DECLARE @OrderID INT
-- Insert into Orders table
INSERT INTO Orders (OrderDate, CustomerID)
VALUES (@OrderDate, @CustomerID)
SET @OrderID = SCOPE_IDENTITY()
-- Insert into OrderItems table
INSERT INTO OrderItems (OrderID, ProductID, Quantity)
SELECT
@OrderID,
Tbl.Col.value('ProductID[1]', 'int'),
Tbl.Col.value('Quantity[1]', 'int')
FROM @ProductList.nodes('//Product') Tbl(Col)
END
该存储过程需要传入三个参数:
例如,可以使用以下代码调用该存储过程:
DECLARE @ProductList XML = '
1
2
2
3
'
EXEC AddNewOrder '2021-07-01', 1234, @ProductList
这将在数据库中创建一个新订单,其中包含两个产品:ProductID为1的产品数量为2,ProductID为2的产品数量为3。