SQL Guid到身份主键,批量查询

时间:2013-10-15 15:06:57

标签: c# sql primary-key guid identity-column

我有一个适用于几个SQL表的小进程。这些表最初是Guid的主键,但为了提高效率,我们将它们更新为BigInt标识。

我有一个批量插入,在主键表中添加一个项目,然后在外键表中添加几个项目。使用Guids,这很容易,因为我在代码中创建了Guid并将其传递给参数。

我很好奇标识列的最佳方法是什么?我知道我能做到:

declare @id int 
insert into PrimaryKeyTable (...) Values (...)
select @id = Scope_Identity()

并取回主键。

将批处理拆分为两个是最好的方法,并将参数传回外键插入的代码中吗?或者有没有办法在一个SQL语句中执行所有插入操作?是否有关于此事的一般公众舆论或最佳做法?谢谢你的任何指导。

1 个答案:

答案 0 :(得分:1)

您需要使用OUTPUT

INSERT...
OUTPUT INSERTED.ID

这允许您进行批量插入,它会吐出批量身份ID以及您明确设置为输出的任何其他内容