Assuming that the column combination of ItemTypeID, Service and OrderID is UNIQUE, the below code should do what you need
INSERT[dbo].[tblOrderItems]( [ItemTypeID], [OrderID], [Service] )
SELECT[ItemTypeID], @newOrderId, [Service]
FROM[dbo].[tblOrderItems] A
WHEREA.OrderID = @OrderID
INSERT#temp_result( OldOrderItemID )
SELECTA.OrderItemID
FROM[dbo].[tblOrderItems] A
WHEREA.OrderID = @OrderID
UPDATER
SETR.NewOrderItemID = NOI.OrderItemID
FROM#temp_result AS R
INNER JOIN [dbo].[tblOrderItems] AS OOI
ON R.OldOrderItemID = OI.OldOrderItemID
INNER JOIN [dbo].[tblOrderItems] AS NOI
ON OOI.ItemTypeID = NOI.ItemTypeID
AND OOI.Service = NOI.Service
AND NOI.OrderID = @newOrderId
WHERER.NewOrderItemID IS NULL
How to post data/code on a forum to get the best help - Jeff Moden
http://www.sqlservercentral.com/articles/Best+Practices/61537/