0

XMLファイルを介してSQLテーブルデータを挿入しています

<root>
  <Attributedata>
    <AttributeLabelID>-1</AttributeLabelID>
    <ProductID>1</ProductID>
    <AttributeLabel>User Label</AttributeLabel>
    <AttributeTypeID>1</AttributeTypeID>
    <Value>
        <valueID>-1 </valueID>
        <Uservalue>sss </Uservalue>
        <ProductAttributelID>1</ProductAttributelID>
    </Value>
    <Value>
        <valueID>-1 </valueID>
        <Uservalue>sss </Uservalue>
        <ProductAttributelID>1</ProductAttributelID>
    </Value>
    <CreatedBy >1</CreatedBy>
</Attributedata>
<Attributedata>

    <AttributeLabelID>-1</AttributeLabelID>
    <ProductID>1</ProductID>
    <AttributeLabel>User Label</AttributeLabel>
    <AttributeTypeID>1</AttributeTypeID>
    <Value>
        <valueID>-1 </valueID>
        <Uservalue>sss </Uservalue>
        <ProductAttributelID>1</ProductAttributelID>
    </Value>

    <CreatedBy >1</CreatedBy>
</Attributedata>
<Attributedata>

    <AttributeLabelID>-1</AttributeLabelID>
    <ProductID>1</ProductID>
    <AttributeLabel>User Label</AttributeLabel>
    <AttributeTypeID>1</AttributeTypeID>
    <Value>
        <valueID>-1 </valueID>
        <Uservalue>sss </Uservalue>
        <ProductAttributelID>1</ProductAttributelID>
    </Value>
    <Value>
        <valueID>-1 </valueID>
        <Uservalue>sss </Uservalue>
        <ProductAttributelID>1</ProductAttributelID>
    </Value>
    <CreatedBy >1</CreatedBy>
</Attributedata>
</root>

表1では、Attributevalueid自動生成された主キーです。その時点で別のテーブルテーブルに挿入したいAttributevalueid2-ストアドプロシージャを介してどのように可能ですか?

4

3 に答える 3

1

おそらくトリガーを使用する必要があります。

質問のタグを付け直してください。

于 2010-12-29T12:34:25.683 に答える
1

OUTPUT 句を使用します。

DECLARE @t TABLE ( AttributeValueId int )

INSERT TABLE_NAME ( ... )
SELECT ...
FROM ....
OUTPUT 
    Inserted.AttributeValueId INTO @t

INSERT OTHER_TABLE ( ... )
SELECT AttributeValueId
FROM @t
于 2011-08-02T09:53:57.517 に答える
0

トリガー応答には同意しますが、フィールドを Identity から通常の int に変更し、カウンター テーブルを使用することもできます。追加のロジックが必要になりますが、それほど多くはなく、すべてのビジネス ロジックをアプリ内に保持できます。

私はまだトリガーの提案を続けます。これは、他の状況でうまく機能した代替手段としてのみ提供しています。

于 2010-12-29T12:59:45.687 に答える