Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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
C# 标识主键的SQL Guid,批处理查询_C#_Sql_Primary Key_Guid_Identity Column - Fatal编程技术网

C# 标识主键的SQL Guid,批处理查询

C# 标识主键的SQL Guid,批处理查询,c#,sql,primary-key,guid,identity-column,C#,Sql,Primary Key,Guid,Identity Column,我有一个处理几个SQL表的小流程。这些表最初是Guid主键控的,但为了提高效率,我们将它们更新为BigInt标识 我有一个批插入,它在主键表中添加一个项,然后在外键表中添加几个项。使用Guid,这很容易,因为我会在代码中创建Guid并将其传递给参数 我很好奇,对于身份专栏来说,最好的方法是什么?我知道我能做到: declare @id int insert into PrimaryKeyTable (...) Values (...) select @id = Scope_Identity()

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

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

我很好奇,对于身份专栏来说,最好的方法是什么?我知道我能做到:

declare @id int 
insert into PrimaryKeyTable (...) Values (...)
select @id = Scope_Identity()
然后拿回主键

将批拆分为两个并将参数传递回外键插入代码中的最佳方法是什么?或者有没有一种方法可以在一条SQL语句中执行所有插入操作?是否有公众对此事的普遍意见,或最佳做法?感谢您的指导。

您需要使用

这允许您执行批插入,它将吐出批标识ID以及您显式设置为输出的任何其他内容

INSERT...
OUTPUT INSERTED.ID