Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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 当插入的行相互引用时,是否可以同时为自引用表插入多行?_Sql Server_Self Referencing Table - Fatal编程技术网

Sql server 当插入的行相互引用时,是否可以同时为自引用表插入多行?

Sql server 当插入的行相互引用时,是否可以同时为自引用表插入多行?,sql-server,self-referencing-table,Sql Server,Self Referencing Table,我有一个自引用表,它有一个可空的、唯一的FK列,引用同一表中另一行的PK。这形成了一个链表结构 我的各种交互都正常工作了,包括插入——只需返回,插入的第一项是链表中的最后一项,后面的每个插入都引用前面的行号 然而,我不喜欢为了处理这个问题而必须进行多次插入。在插入的每一行都使用上一行的@@IDENTITY的情况下,有没有办法进行多行插入 我想知道这样的事情,但是@@IDENTITY只返回null作为下一个值 INSERT INTO LINKED_LIST (next) SELECT @@IDEN

我有一个自引用表,它有一个可空的、唯一的FK列,引用同一表中另一行的PK。这形成了一个链表结构

我的各种交互都正常工作了,包括插入——只需返回,插入的第一项是链表中的最后一项,后面的每个插入都引用前面的行号

然而,我不喜欢为了处理这个问题而必须进行多次插入。在插入的每一行都使用上一行的
@@IDENTITY
的情况下,有没有办法进行多行插入

我想知道这样的事情,但是
@@IDENTITY
只返回
null
作为下一个值

INSERT INTO LINKED_LIST (next)
SELECT @@IDENTITY
UNION ALL
SELECT @@IDENTITY
UNION ALL
SELECT @@IDENTITY

在阅读中,这是有道理的,因为在
INSERT
返回后才设置值,但问题是是否有聪明的方法以另一种方式实现相同的目标?

您有什么版本的sql server?2008-2012-2014???这需要为
2012
2014
提供支持。查看新功能@M.Ali如果我正确阅读文档,使用
序列号将意味着我无法再控制DB层中的FK约束。我不想把这个责任推到应用层上……也许可以试着用触发器来更新以前的id?