Я пытался продлить вышеуказанную ссылку http://blogs.msdn.com/b/biztalkcpr/archive/2009/10/05/inserting-parent-child-records-with-identity-column-using-wcf-sql-adapter-in-one-transaction.aspx#comments
Моя проблема:
У меня три таблицы .... первые две таблицы имеют id
как IDENTITY
... Мне нужно получить id
первой таблицы во 2-й таблице
Затем мне нужно получить id
1-й и 2-й таблицы в 3-й таблице ..... Я смог получить id
первой таблицы во 2-й таблице
Но я не могу получить id
2-й таблицы в 3-ю таблицу ............ Я использую адаптер WCF SQL для использования хранимой процедуры, и моя хранимая процедура выглядит следующим образом
CREATE Procedure [dbo].[InsertHeader]
(
@parHeader As Header READONLY,
@parHeader_Details As HeaderDetails READONLY,
@parHeader_Details1 As HeaderDetails1 READONLY
)
AS
SET NOCOUNT ON
BEGIN
DECLARE @id int, @id1 int
INSERT INTO EDI834_5010_Header([File_Name_EDI834], [ST01], [ST02], [ST03],
[BGN01__TransactionSetPurposeCode],
[BGN02__TransactionSetIdentifierCode],
[BGN03__TransactionSetCreationDate],
[BGN04__TransactionSetCreationTime],
[BGN08__ActionCode], [SE01], [SE02])
SELECT
[File_Name_EDI834], [ST01], [ST02], [ST03],
[BGN01__TransactionSetPurposeCode], [BGN02__TransactionSetIdentifierCode],
[BGN03__TransactionSetCreationDate], [BGN04__TransactionSetCreationTime],
[BGN08__ActionCode], [SE01], [SE02]
FROM @parHeader;
SET @id = @@IDENTITY;
INSERT INTO EDI834_5010_2000([Header_Id], [INS01__InsuredIndicator],
[INS02__IndividualRelationshipCode],
[INS03__MaintenanceTypeCode],
[INS04__MaintenanceReasonCode],
[INS05__BenefitStatusCode])
SELECT @id, [INS01__InsuredIndicator], [INS02__IndividualRelationshipCode],
[INS03__MaintenanceTypeCode], [INS04__MaintenanceReasonCode],
[INS05__BenefitStatusCode]
FROM @parHeader_Details;
SET @id1 = @@IDENTITY;
INSERT INTO EDI834_5010_2300Loop([Id_Header_Id], [Id_Loop2000],
[HD01_MaintenanceTypeCode], [HD03_InsuranceLineCode],
[HD04_PlanCoverageDescription])
SELECT @id, @id1,
HD01_MaintenanceTypeCode, HD03_InsuranceLineCode,
HD04_PlanCoverageDescription
FROM @parHeader_Details1;
RETURN @id1;
END
Что мне нужно изменить в моей хранимой процедуре, чтобы получить id
из 2-й таблицы в 3-ю ....... есть так много циклов в xml, поэтому мне нужно получить соответствующие идентификаторы в 3-й таблице
И мои данные выглядят так
<Header details>
<Header_Details1> data </Header_Details>
<Header_Details1> data </Header_Details>
<Header_Details1> data </Header_Details>
<Header_details>
<Header details>
<Header_Details1> data </Header_Details>
<Header_Details1> data </Header_Details>
<Header_Details1> data </Header_Details>
<Header_details>