Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 批量插入中获取ID_Sql Server_Scope Identity - Fatal编程技术网

Sql server 批量插入中获取ID

Sql server 批量插入中获取ID,sql-server,scope-identity,Sql Server,Scope Identity,我正在通过XML文件插入SQL表数据 <root> <Attributedata> <AttributeLabelID>-1</AttributeLabelID> <ProductID>1</ProductID> <AttributeLabel>User Label</AttributeLabel> <AttributeTypeID>1</Attr

我正在通过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
1.
用户标签
1.
-1 
sss
1.
-1 
sss
1.
1.
-1
1.
用户标签
1.
-1 
sss
1.
1.
-1
1.
用户标签
1.
-1 
sss
1.
-1 
sss
1.
1.

在表1中,
Attributevalueid
是自动生成的主键。当时我想在另一个表中插入
Attributevalueid
,表2-如何通过存储过程实现这一点?

您可能应该使用触发器


请重新标记您的问题。

我同意触发器响应,但您也可以将字段从Identity更改为常规int,并使用计数器表。这将需要一些附加的逻辑在你的端,但不是很多,你可以保持你的应用程序中的所有业务逻辑

我还是同意触发的建议。我只是提供了一个在其他情况下对我很有效的替代方案。

使用:


那些骑士可能不是程序员,你应该向他们展示更好的英语。(Y) .但我在明细表中插入了更多数据
DECLARE @t TABLE ( AttributeValueId int )

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

INSERT OTHER_TABLE ( ... )
SELECT AttributeValueId
FROM @t