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

sql-server-2008 - TSQL 使用当前正在插入的记录来选择另一个表中的数据

对 TSQL 非常陌生...

我有下表称为“tblinit”:

我想更新下面“tblRaw”中的“任务百分比”值。

我的计划是在插入“tblinit”时使用由触发器执行的 TSQL 存储过程。存储过程会将数据移动到“tblRaw”(合并或删除和插入),然后在过程完成后截断“tblinit”。tblInit 仅用于暂存传入数据。

已经阅读过 SCOPE_IDENTITY@@IDENTIY没有完全掌握这个概念。范围是否由执行存储过程的触发器定义?在尝试使用我自己的 SELECT 语句时SCOPE_IDENTITY@@IDENTITY我总是返回“NULL”结果。引用的 MSDN 文章似乎返回与文章示例中指定的数据不相关的主键。显然我读错了。我想获取刚刚插入的记录并在我的查询中使用它。

本质上,如何在插入时自动更新 john.smith 的新百分比值,或者如何完全添加新记录?

0 投票
2 回答
1485 浏览

php - 如何使用 PHP 在安装了触发器的 MSSQL 表上返回最后插入的 ID

我正在尝试在 MSSQL 数据库上运行查询并使用 PHP 返回插入 ID。以前,我一直在使用以下代码,效果很好:

但是,由于集成要求,我们在 Pricing 表中添加了一个触发器,该触发器在运行 INSERT 查询时将数据复制到另一个数据库中的临时表中。这种改变操作的顺序。据我所知,正在发生以下情况:

我以前一直在使用 SCOPE_IDENTITY,所以触发器覆盖最后一个插入 ID 是有道理的。但是当我弄清楚这一点时,我切换到 IDENT_CURRENT('Pricing') 以便在我的请求中更加明确。但是,它仍然返回一个空值。

我应该补充一点,如果我们禁用触发器,则此代码可以完美运行。

有什么方法可以在有触发器的表上返回最后插入的 ID?

非常感谢您的任何建议或想法。

编辑:这是触发器:

编辑:解决了!

好吧,我仍然不明白为什么,但问题似乎是由使用触发器和尝试将查询组合在一起的奇怪组合引起的。显然,如果表上有触发器,则需要单独运行查询。以下是最终奏效的方法:

0 投票
1 回答
624 浏览

sql-server - 如何从 SP 获取 SCOPE_IDENTITY()?

我试图从存储过程中获取 SCOPE_IDENTITY 到我的 vb.NET 应用程序,但我得到了 DBNull 异常。

这是我的 SP:


我的 vb.NET 代码:

插入语句工作正常。

问题是我得到“从类型'DBNull'到类型'Integer'的转换无效。”

我正在使用链接服务器,这可能是问题吗?

0 投票
1 回答
7283 浏览

sql - 为 SQL TableType 插入批量记录时获取 SCOPE_IDENTITY 值

我有以下表格结构,为了方便起见,我只标记个别列

  • Table_A( Id, Name, Desc)
  • Table_1Id 这是身份列Name....)
  • Table_2Id 这是身份列,,,Table_A_IdTable_1_Id

Table_1 和 Table_2 之间的关系是1...*

现在我为Table_A调用创建了一个表类型TType_Table_A(它只包含Id作为列,并且从我的 C# 应用程序中发送多条记录)。我已经根据需要实现了这种批量插入功能。

我需要的是,当我用下面的语句将记录插入到Table_2from中时TType_Table_A,我想为插入IdTable_2每条记录捕获

现在说如果插入了 2 条记录,我想Id为这 2 条记录中的每一条记录。

任何输入/帮助表示赞赏

这就是我知道如何实现的,但我想减少来自我的应用程序或存储过程中的用户游标的数据库调用

在Table_1中插入记录并返回Id循环......通过记录并在Table_2中插入记录并返回Id

或者

从 TableType 插入/选择时在存储过程中使用游标

0 投票
3 回答
165 浏览

sql-server - 如何将最后插入的 PK 计算的 varchar(7) 字段作为输出

DDL:

SP:

我尝试了很多方法来获取 insert.Ad_Regid... 的输出...没有得到,我也尝试了 select @Ad_Regid = SCOPE_IDENTITY()

谢谢...

0 投票
3 回答
1978 浏览

c# - SQL Scope_Identity 返回 0 或 -1

我在获取最后一行受影响的 ID 时遇到问题,它返回 0,这意味着它在插入格式时出错。我执行了存储过程并手动添加了值,它返回了正确的 ID。但是,当我尝试使用代码执行此操作时,它会一直返回 0 或 -1 ...我昨晚在几个小时后尝试了此操作,但我已经对它给我的值感到困惑。

C#:

存储过程:

SQL 表:

0 投票
4 回答
6469 浏览

c# - 实体框架和 SCOPE_IDENTITY

我有一个存储过程,它插入到表中然后执行这一行

之后我都尝试了:

当我从 Microsoft SQL Server Management Studio 执行存储过程时,我得到了预期的结果SELECT @returnVal- 选择了插入数据的标识列。

但是,当我将存储过程添加到我的 ADO.Net 实体数据模型/EntityFramework 类/.edmx 类并在我的 C# 代码中执行存储过程时,我得到了返回值 -1 没有失败。

是否有可能得到我想要的值,新的身份值,返回?

我意识到我可以手动将存储过程绑定到模型中表的插入操作 - 但这不是一个选项。每次我重新生成我的模型类时,有太多的插入过程来完成这项手动工作。

0 投票
1 回答
234 浏览

asp.net - SQL SCOPE_IDENTITY 记录两次

我有一个存储过程

一切都好。

但是记录两次“mesaj”。获取“mesaj”的第一个插入ID并将其用作第二条记录的chat_id。所以录制两次。(mesaj 表示土耳其语中的消息 :))。我尝试使用 @@IDENTITY 而不是 SCOPE_IDENTITY 但没有任何改变。我尝试使用 IDENT_CURRENT(chat) 但返回错误“无效的列名'聊天'。”

我怎么解决这个问题 ?

0 投票
1 回答
447 浏览

javascript - 未返回带有 SQL Server Native Client 11 scope_identity 的 node.js

我在通过 node.js 将值插入数据库时​​遇到问题。这是有问题的代码:

不幸的是,控制台只是 echoing [],这意味着 results 是一个空数组,我想。

有谁知道为什么没有返回身份?即使它是空的,为什么没有结果[{Identity: null }]呢?

数据库在 Azure 上,确实有一个“Scope_Identity”函数,原生客户端也能识别这个函数。

使用节点包“msnodesql”

请帮忙

0 投票
1 回答
676 浏览

c# - Scope_Identity() 返回一个空白字符串

下面是一段包含两部分的代码。几乎一模一样。他们都在表中插入一些东西,然后调用 Scope_identity。我已经检查以确保正在插入 AddressType,它给了我 CityId 就好了。我看不出区别。我查看了代码,找不到我的错误。我希望有人能多一双慧眼,指出什么,我敢肯定,一定是一个明显的错误。