У меня есть 2 таблицы:
- Заказ (с идентификатором поля идентификатора заказа)
- OrderItems (с внешним ключом для идентификатора заказа)
В сохраненном процессе у меня есть список заказов, которые мне нужно продублировать.Есть ли хороший способ сделать это в хранимой процедуре без курсора?
Редактировать:
Это на SQL Server 2008.
Примером спецификации таблицы может быть:
CREATE TABLE Order (
OrderID INT IDENTITY(1,1),
CustomerName VARCHAR(100),
CONSTRAINT PK_Order PRIMARY KEY (OrderID)
)
CREATE TABLE OrderItem (
OrderID INT,
LineNumber INT,
Price money,
Notes VARCHAR(100),
CONSTRAINT PK_OrderItem PRIMARY KEY (OrderID, LineNumber),
CONSTRAINT FK_OrderItem_Order FOREIGN KEY (OrderID) REFERENCES Order(OrderID)
)
Хранимому процессу передается customerName из 'fred', поэтому он пытается клонировать все заказы, где CustomerName = 'fred'.
Чтобы привести более конкретный пример:
У Фреда есть 2 заказа:
- В заказе 1 есть номера строк 1,2,3
- В заказе 2 естьномера строк 1,2,4,6.
Если следующий идентификатор в таблице был 123, я бы хотел создать:
- Порядок 123 со строками 1,2,3
- Заказ 124 со строками 1,2,4,6