问题标签 [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 投票
5 回答
152338 浏览

sql - 插入 Oracle 并检索生成的序列 ID

我有一些针对 SQL Server 的原始 SQL 查询,它们使用 SCOPE_IDENTITY 来检索特定 INSERT 的生成 ID,在该 INSERT 发生在一次执行之后立即...</p>

问题是:

对于 Oracle 数据库,最好的方法是什么?

这可以通过标准 SQL 在 Oracle 上完成,还是我必须切换它以使用存储过程并将类似的东西放在存储过程的主体中?

如果它必须是一个存储过程,那么检索最后生成的序列号的事实上的标准方法是什么,注意考虑到多个线程上可能会有重叠的执行,所以这个机制需要检索正确的生成 ID 和不一定是最后生成的绝对 ID。

如果两个同时执行,则每个都必须从各自的调用中返回正确的生成 ID。请注意,由于调用的多线程性质,我没有使用 SQL Server 的“@@IDENTITY”。

如果可能的话,我宁愿将其保留为原始 SQL,因为这对我来说更容易跨平台管理(包含每个平台的 SQL 块的单个文件,由 DBMS 标识标签分隔)。存储过程对我来说需要更多的工作来管理,但如果这是唯一可能的方式,我可以这样做。

0 投票
3 回答
1117 浏览

sql-server - PostgreSQL 中的 nextval 和 curval 混淆

如果多个用户同时运行以下查询会发生什么?

这是否像 SQL SERVER 的 SCOPE_IDENTITY() 一样可靠?任何建议将不胜感激。

0 投票
1 回答
1176 浏览

sql-server-2008 - 如何在 SQL 命令中使用作用域标识?

下面给出了我使用范围标识的概念。使用支持我的概念的范围标识的正确方法是什么?

对于单个数据:

对于多个数据:

0 投票
2 回答
1242 浏览

asp.net - 使用 scope_Identity 获取 id 以存储在会话变量中

我的代码需要一些帮助。如何让 scope_Identiy 将 ImageId 存储为会话变量。我已经坚持了很长时间,但我无法让它发挥作用。

编辑:我相信从 SqlDataReader dataReader = cmd.ExecuteReader(); 下来是错误的。我只是不知道如何解决它。我对此还是陌生的。

0 投票
3 回答
2645 浏览

sql-server-2008 - SQL Server Scope_Identity() 使用问题

我不明白为什么这个使用 scope_identity() 的多表插入(存储过程)不起作用。这是它的要点(请原谅这里缺乏想象力的命名):

在此处输入图像描述

TableB 的 RowID 列显然是一个 int,而不是设置为标识自动增量或类似的东西。

如果我在管理工作室中运行它,它会说 1 行受到影响,但它不会插入。

如果我从代码中运行它,我会收到一条错误消息,说我无法在 TableB 中插入 NULL 值,RowID 是正确的,它有一个非空约束。但它应该从第一个表中获取 scope_identity() 。

我已经在事务和各种参数初始化中尝试过它......这让我很生气。提前感谢您的任何帮助。

0 投票
1 回答
1600 浏览

sql - SQL获取id值并插入另一列

我正在尝试创建一个 sql 语句,该语句将插入一条初始记录,检索新的 id(自动编号主键)并将其插入表中的另一列以用作默认值。

这是我到目前为止所拥有的:

这不能按原样工作,我可以用手来纠正语法

0 投票
2 回答
3677 浏览

sql - 如何返回最后插入的主键

我询问替代或类似查询informix以执行以下操作:

我想要一个查询返回 SCOPE_IDENTITY()插入期间的语句

0 投票
4 回答
1079 浏览

sql - 由于重复插入失败后选择身份

假设我有一个带有主键 ID 和唯一键名称的 MS SQL Server 表。此外,为名称设置了 IGNORE_DUP_KEY。我要做的是插入一个名称然后获取它的ID,而不管操作执行是否成功。即如果名字不是重复的,取新的ID,如果是重复的,取已经存在的ID。

显然,如果我执行 INSERT Name 然后选择一个 IDENTITY,则在 Name 重复的情况下将无法正常工作(在这种情况下,诸如 SCOPE_IDENTITY() 之类的函数将返回 NULL)。但是,我相信应该有一种方法可以轻松实现这一点,因为 INSERT 应该已经找到了未成功插入名称的 ID。因此,此 ID 应该在 O(1) 时间内可用。

另外,请注意,由于性能问题,对服务器有两个单独的请求(插入和选择)不是我的选择。

0 投票
2 回答
475 浏览

asp.net - 尝试使用 scope_identity 传递最近的 ID,它的错误是我:指定的演员表无效

我试图传递我刚刚用 Scope_Identity 插入的最近的 ID,它给了我一些奇怪的东西。它说 :

: 指定的演员表无效

并参考该行:

这是其余的代码:

有人有线索吗?

谢谢!

0 投票
2 回答
164 浏览

sql - 如何在 scope_identity() 的帮助下获取身份值

我有在 TRIGGER 中实现的 scope_identity()。

当触发触发时,@TempIdentity 获取标识列字段,并将此值设置到另一个表中。

但是,总是在触发 TRIGGER 之后,@TempIdentity 会变为 NULL。

为什么 TempIdentity 没有得到 Identity 字段?我应该在我的代码中更改什么?