问题标签 [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 回答
1030 浏览

sql-server - 从插入/选择中获取身份

我正在编写 SQL Server 2012 中的脚本(作为经典 ASP 页面的后端),以从我的初始表 ( aaa_test_ap) 中选择所有行并将它们分布在我的其他 3 个表 ( aaa_test_usersaaa_test_users_positionsaaa_test_users_education) 中。

我想获得 的标识aaa_test_users.ID,一旦将一行插入其中,用于其他两个表插入,作为它们的 FK ( User_ID),在同一个查询中。

INSERT INTO是否可以在一个查询中 使用该方法获得身份?

我试过使用SCOPE_Identity(),但它只返回最后一个值。

使用该OUTPUT方法,我将如何利用它生成的表值,以便将第一个插入语句生成的值插入到接下来的两个语句中,每个语句都在正确的插入行中?

首先,表格:

这是我一直在处理的查询:

0 投票
1 回答
378 浏览

sql-server - SQL Server Profiler 显示 SCOPE_IDENTITY() 而 ColdFusion 代码未在任何查询中使用它

我正在使用 SQL Server 2008 R2 Profiler 来调试 ColdFusion 7 应用程序上的问题 - 该应用程序由其他人开发 - 在 Windows 7 上运行,SQL Server 2008 R2 作为后端。该应用程序最初使用 MS Access 2003 作为后端,后来转换为 SQL Server 2008 R2。探查器显示以下使用 SCOPE_IDENTITY() 的 SQL,但是当我使用搜索实用程序搜索应用程序根目录时,没有文件在其 SQL 查询中的任何位置使用 SCOPE_IDENTITY() 函数。该应用程序的 SQL Server 数据库没有任何存储过程、视图、函数等。所有 SQL 查询都是 ColdFusion 文件中的嵌入式查询。然后 Profiler 在哪里获得 SCOPE_IDENTITY() 函数:

更新 虽然最初该应用程序是在 CF 7 中开发的,但后来 CF 7 升级到了 CF9,现在我正在本地机器上调试它,它有 CF 11。我不知道当 CF 7 替换为时代码是否也升级了CF 8,然后是 CF 9。似乎在分析器中生成上述 SQL 的 CFquery 看起来像。此外,表 ProductItems 确实有一个标识列,数据库没有使用任何触发器,CFquery 标签没有使用结果属性:

0 投票
2 回答
54 浏览

sql - 菊花链多个scope_identities?

假设我有 4 个表,我想使用新插入的 pk 从一个表到下一个表(这都作为一批执行)

这可能吗?

谢谢

0 投票
2 回答
1706 浏览

tsql - 如何将标识值插入另一个表

我有两张桌子:

因此,让我们插入 Clients ('Ralph', 00000000),id_client 将是 1(显然)。问题是:我怎样才能将那个 1 插入到 Sales 中?

0 投票
1 回答
688 浏览

stored-procedures - SQL server存储过程级联插入三张表

我正在运行我自己的项目。之前我使用的是 MS Access 数据库,但现在它不足以处理如此庞大的数据。

我的问题是我正在使用存储过程,我需要一些建议。

我尝试对 3 个表进行级联插入。第一个表仅保留协议编号,第二个表地址用于协议,最后一个表用于这些地址。单个协议可以有很多地址,所有这些地址都可以有很多东西。

Scope_identity、output 等效果很好,但是当我对所有表只有一条记录时。

我希望我能解释一下系统。简单的帮助会很好。谢谢

0 投票
1 回答
135 浏览

sql - Consistency when using SCOPE_IDENTITY() in output

I want to execute a SQL query that would return the current identity id of the row that was added to the table:

Now my question is it the returned id for my current inserted row or is it the id of the last inserted row?

I mean can I trust it for using as foreign key?

0 投票
1 回答
156 浏览

c# - 使用 SQL 和 C# 将表 1 的 PK 作为表 2 中的 FK - 与 select_identity() 中断,对象不能从 DBNull 转换为其他类型

C# 和 SQL 初学者在这里。我有两个表使用主键table1作为外键table2。为了获得一个 ID,我正在使用SELECT MAX并且一切都我想要的方式工作(下面的代码):

但是同事告诉我我应该使用SCOPE_IDENTITY()而不是SELECT MAX. 我确实理解为什么要使用它(在多个用户的情况下等),但是在替换SELECT MAX它之后,我得到一个错误:

对象不能从 DBNull 转换为其他类型。

在我的数据库中,PK 和 FK 具有 int 数据类型,不允许使用 Null,并且SELECT MAX可以正常工作。那么我在这里做错了什么?

0 投票
1 回答
727 浏览

sql - Scope_Identity() 总是返回 0

以下存储过程正确插入新行,但始终为输出参数返回 0。什么会返回新的行 ID?

0 投票
1 回答
1463 浏览

sql-server - 获取触发器内插入的标识

我将 TableA 和 TableB 放入 SQL Server 2008。

TableA 有一个在 INSERT & UPDATE 之后触发的触发器,在我插入 TableB 的触发器上,所以我的问题是如何从 TableB 中获取插入的 ID?FROM INSERTED 有 TableA 中记录的信息吗?

如果我在同一个会话中向 tableA 发送了十万个插入。我可以使用 @@identity 或 scope_identity() (我选择最后一个)来获取 b 插入的身份吗?考虑到每次触发触发器以及完成所有触发器功能的时间,使用这两个功能之一是多​​么方便和安全

0 投票
1 回答
2832 浏览

sql-server - 为什么 SCOPE_IDENTITY() 在插入一个表而不是另一个表后返回 NULL?

为什么SCOPE_IDENTITY()在表中插入一行后返回NULL ComponentAssociation@@IDENTITY返回正确的Id),而SCOPE_IDENTITY()在表中插入一行后返回正确的Id CustomerProjectAssociation

两个关联表的创建方式相同。

这是表创建脚本的摘录:

下面是从 SQL Server Management Studio 对数据库执行的两个查询:

结果:

结果: