c# - SQL Guid to Identity 主键,批量查询

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

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

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

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

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

并取回主键。

最好的方法是将批处理分成两批,然后在外键插入的代码中传回参数吗?或者有没有办法在一条 SQL 语句中执行所有插入操作?是否有关于此事的普遍公众意见或最佳做法?谢谢你的指导。

最佳答案

您需要使用 OUTPUT

INSERT...
OUTPUT INSERTED.ID

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

关于c# - SQL Guid to Identity 主键,批量查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384687/

相关文章:

php - 创建唯一的不可猜测的 base 36 id

java - 生成 SQL JOIN 语句

sql - 将 SQL FLOAT 转换为 SQL INT,丢失数据

sql - PostgreSQL 错误,没有给出唯一约束匹配

sql - 在 SQL Server 2016 中添加小计行作为汇总项

mysql - 为什么在同一键上的主键已定义时使用 Unique

c# - 可以使用 EF 迁移更新生产数据库吗?

c# - MVC 3 复选框验证

c# - 同时远程多次执行SSIS包

c# - 我可以一次性处理多个对象吗?