Sql server 批量插入中获取ID
我正在通过XML文件插入SQL表数据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
<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