问题标签 [scope-identity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
94 浏览

asp.net-mvc-4 - 如何抓取新创建的 PK 并返回所选索引的页面

我有一个 MVC 4 应用程序、VS 2010、实体框架 5、Sql 2008 R2、c#

在我的控制器中,在我添加一个新条目(实际上是一个要添加到下拉列表的表单)之后,我想获取刚刚创建的 ID 并将其传递回下拉列表,以便页面现在显示新创建的条目(以及所有它的详细信息)。

我一直在阅读有关 SCOPE IDENTITY 的信息,但我不确定如何从这方面实施和使用它(如果可能的话)。任何建议都非常受欢迎。

0 投票
2 回答
556 浏览

java - EclipseLink 记录插入返回错误的 id

MSSQL(2008) 和 EclipseLink(2.4)

我正在插入一个带有触发器的表,该触发器会插入另一个表

发生这种情况时,EclipseLink 返回由触发器插入到另一个表中的记录的 ID。

我假设我可以通过让 EcliipseLink 使用 SCOPE_IDENTITY() 而不是 @@IDENTITY 来获得正确的 ID。

问题是如何做到这一点?

我需要 EclipseLink (JPA) 的解决方案,我知道如何使用 sql 获取 id。

0 投票
2 回答
1982 浏览

c# - ExecuteSQLCommand SCOPE_IDENTITY() 总是返回 1 (.NET C#)

我正在使用动态 sql 将数据插入动态表(.NET C#)。我需要获取标识列值作为回报,我尝试使用 scope_identity 但结果始终显示 1。

这是我的代码

我在这里想念什么吗?

谢谢

菲利克斯

0 投票
1 回答
1271 浏览

sql-server - SCOPE_IDENTITY() 用于 SSIS 中的批量插入

在 SSIS 中,我可以使用调用存储过程的 OLE DB 命令任务来插入行并检索它们的 SCOPE_IDENTITY ,但这不是批量插入,它的加载速度很慢。是否可以在 SSIS 中使用批量插入来获取插入行的 ID?

示例:插入客户时,首先我必须在 Person 表中插入记录,然后在 Customer 表中使用此 FK。

更新:

这是需要从外部源填充的 Person 和 Customer 表的结构。

在此处输入图像描述

一种选择是在 Person 表中包含 OriginalId,以便在填充 Customer 表时可以在查找中使用它。但这并不能回答我关于 SCOPE_IDENTITY 和快速加载的问题

0 投票
7 回答
15867 浏览

c# - 使用 SQL Server 插入 C# 后返回 id

我知道这个问题已经多次出现在这个网站上,但我无法让我的代码正常工作。

我有一个Insert声明,我需要我的 asp.net 页面上该声明的 id。

我得到return value 0.

0 投票
1 回答
4522 浏览

sql-server - 如何使用 INSTEAD OF 触发器将新记录的标识插入到表中

我在表上使用 INSTEAD OF 插入触发器在行上设置递增的版本号,并将行复制到第二个历史/审计表。
这些行被插入到两个表中没有问题。
但是,我无法将第一个表中的新身份返回给用户。

架构

在插入触发器中加入name列并不理想,但它需要一次处理多个插入。
例如INSERT INTO Table1 (name) VALUES('xxx'),('yyy')

尝试的解决方案

进行插入时,SCOPE_IDENTITYNULL.

我也尝试过使用 OUTPUT - 它返回0

这些行插入得很好并且有 ID,但我无法访问它们,除非我使用下面的 - 这看起来很 hacky:

获取新ID的正确方法是什么?


解决方案

不可能的!在具有 INSTEAD OF 触发器的表上执行 INSERT 时,您无法可靠地返回标识。Sidux 在下面的回答是针对我的情况的一个很好的解决方法(将 INSTEAD OF 触发器替换为 AFTER 触发器并添加了 DEFAULT 列)。

0 投票
1 回答
4823 浏览

sql-server - 使用 select 插入后获取 SCOPE_IDENTITY()

我在从插入语句中获取范围标识时遇到问题。我以前做过很多次,但总是有定义的值:

当您通过从另一个表中运行选择来获取插入的值时,如何做到这一点?

以上运行没有错误,但@id 为空

0 投票
3 回答
69 浏览

c# - 无法进行连续的数据库插入

我正在尝试对 2 个不同的表连续执行 2 个 SQL 插入。

第一个表插入工作正常。它用于SELECT SCOPE_IDENTITY()提取我然后存储在变量中的索引号Registree_Index。这工作正常。

然后我尝试将Registree_Index其他一些变量插入到第二个表中。这根本不会写入第二个表。也没有错误信息。

最初我认为这个错误与重用我的旧查询和连接字符串变量有关,所以我创建了新的。这没有帮助。

有人对此有想法吗?代码如下...

0 投票
3 回答
1403 浏览

sql-server - 部分存储过程只是没有运行

我有一个运行一系列插入的存储过程,但在某些情况下,其中一个插入似乎没有运行,但它后面的其余代码运行良好。

这是一个经过编辑的 SP 样本。为什么有时会发生这种情况?我会想如果INSERT剩下的程序有问题会爆炸吗?但相同的代码大部分时间都由同一个人运行。我检查了在问题发生的同时是否有任何表锁定,但似乎没有任何我可以发现的东西。

找出问题所在的最佳方法是什么?或者我应该如何重组上述代码以消除可能的影响?

0 投票
1 回答
415 浏览

sql - 如果我使用 scope_identity() ;如果多个用户同时使用该应用程序,是否有可能返回错误行的值

我是编程界的新手,所以请原谅我的无知。

我想检索我刚刚插入的行的主键值。主键值是自动生成的。我想将该主键值作为外键插入到另一个表中。

这是在第一个表中插入数据的代码

DoQuery在哪里

在上面的代码中,作为主键的 id 是自动生成的。我想检索该值以将其插入surveyid到第二个表中。

并通过检索第二个表 wan 的 id 来在第三个表上插入值。

要检索最近插入的行的 id 值,我们可以使用

由于这是一个 Web 应用程序,并且多个用户同时使用该应用程序,因此可能SCOPE_IDENTITY()会返回错误行的值。如果是这样,我该如何避免呢?

请原谅我对编程的无知。

感谢你的帮助。

谢谢巴沙比