插入具有条件的两个表

时间:2011-04-10 01:17:49

标签: sql sql-server sql-server-2008

我正在做预订申请,并想知道我将如何处理以下情况;如果预订上有2个或更多“额外”项目,我如何创建一个SP或触发器甚至处理这个? SP我现在已经可以预订,只需要一个额外的项目。我有意义吗?

ALTER PROCEDURE [dbo].[CreateBooking]

@DateFrom datetime,
@DateTo datetime,
@RoomID int,
@PersonID int,
@ProductID int,
@OrderAmount int


AS
BEGIN TRANSACTION 
SET NOCOUNT ON;

INSERT INTO booking(created_on, startdate, enddate, room_id, person_id) 
VALUES (getdate(), @DateFrom, @DateTo, @RoomID, @PersonID)

IF @@error <> 0
ROLLBACK TRANSACTION 
ELSE

INSERT INTO booking_details (booking_id,prod_id,order_amount) 
VALUES (SCOPE_IDENTITY(), @ProductID, @OrderAmount)

COMMIT TRANSACTION

1 个答案:

答案 0 :(得分:0)

您可以传递一个xml参数,然后遍历它并编写它们。

  

创建程序   SelectByIdList(@productIds xml)AS

     

DECLARE @Products TABLE(ID int)

     

INSERT INTO @Products(ID)SELECT   ParamValues.ID.value( ' '' VARCHAR(20)')   FROM @ productIds.nodes('/ Products / id')   作为ParamValues(ID)

     

SELECT * FROM       产品INNER JOIN       @Products p ON Products.ProductID = p.ID