Вставить в две таблицы с условиями - PullRequest
0 голосов
/ 10 апреля 2011

Я делаю заявку на бронирование и мне было интересно, как бы я справился со следующим сценарием; если в бронировании 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 голосов
/ 10 апреля 2011

Вы можете передать параметр xml, затем пройти через него и записать их.

СОЗДАНИЕ ПРОЦЕДУРЫ SelectByIdList (@productIds xml) AS

ОБЪЯВИТЬ @ ПРОДУКТЫ ТАБЛИЦА (ID int)

INSERT INTO @Products (ID) SELECT ParamValues.ID.value ( ' '' VARCHAR (20)') FROM @ productIds.nodes ('/ Products / id') как ParamValues ​​(ID)

ВЫБРАТЬ * ИЗ Продукты INNER JOIN @Products p ON Products.ProductID = p.ID

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...