从表中获取最后一条记录 ID 的最安全方法

2023-12-27

在 SQL Server 2008 及更高版本中,最好/最安全/最正确的方法是什么

  1. 从数据库表中检索ID(基于自动增量主键)?
  2. 检索其他列最后一行的值(例如,SELECT TOP 1 FROM Table ORDER BY DESC)?

SELECT IDENT_CURRENT('Table')

您可以使用以下示例之一:

SELECT * FROM Table 
WHERE ID = (
    SELECT IDENT_CURRENT('Table'))

SELECT * FROM Table
WHERE ID = (
    SELECT MAX(ID) FROM Table)

SELECT TOP 1 * FROM Table
ORDER BY ID DESC

但第一个会更有效,因为不需要索引扫描(如果 Id 列上有索引)。

第二种解决方案与第三种解决方案等效(两者都需要扫描表来获取最大id)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从表中获取最后一条记录 ID 的最安全方法 的相关文章

  • Oracle:如何获取刚刚插入的行的序列号?

    如何获取刚刚插入的行的序列号 插入 返回 declare s2 number begin insert into seqtest2 x values aaa returning seq into s2 dbms output put lin
  • 检查两个“select”是否相等

    有没有办法检查两个 非平凡的 选择是否等效 最初我希望两个选择之间有形式上的等价 但是答案在证明 sql 查询等价性 https stackoverflow com questions 56895 proving sql query equ
  • 什么时候应该使用 C++ 而不是 SQL?

    我是一名 C 程序员 偶尔使用 MySQL 来处理数据库 但我的 SQL 知识相当有限 但我肯定愿意改变这一点 目前 我正在尝试仅使用 SQL 查询对数据库中的数据进行分析 但我准备放弃了 转而将数据导入到C 中 用C 代码进行分析 我和同
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • 如何通过 SQL 表关联 SQL 中的实体

    我是数据库设计的初学者 我需要为项目创建数据库 我可以用面向对象的术语解释我想要做什么 值得庆幸的是 数据库专家会很友善地向我解释如何在数据库方面处理这个问题 我想创建一个与位置实体 州 城市 有关系的用户 ID 名称 实体 所以在编程语言
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 提高第一个查询的性能

    如果执行以下数据库 postgres 查询 则第二次调用要快得多 我猜第一个查询很慢 因为操作系统 linux 需要从磁盘获取数据 第二个查询受益于文件系统级别和 postgres 中的缓存 有没有一种方法可以优化数据库以快速获得结果fir
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 从 Getdate() 获取时间

    我想采取Getdate 结果 例如 2011 10 05 11 26 55 000 into 11 26 55 AM 我看过其他地方并发现 Select RIGHT CONVERT VARCHAR GETDATE 100 7 这给了我 11
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 同时从2个表中删除?

    我正在使用 asp net 和 sql 服务器 我有 2 个表 类别和产品 在产品表中 我的categoryId 为FK 我想要做的是 当我从类别表中删除类别时 我希望该类别中的所有产品都将在产品表中删除 如何才能做到这一点 我更喜欢使用存
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • SQL Server 数据库架构版本控制和更新

    对于我的应用程序 我必须支持更新方案 并且数据库可能会受到影响 我希望能够从旧版本更新到最新版本 而无需安装中间版本 例如 假设我有版本 A 最旧的版本 B 中间版本 和 C 新版本 我希望能够将版本 A 直接更新到版本 C 对于应用程序文
  • 我可以从 SQL Server 读取元数据来了解最后更改的行/表吗?

    我们有一个数据库hundreds的桌子 有没有某种metaSQL Server 中的数据源 我可以以编程方式查询以获取名称最后更改表和行 或者我们是否需要实施这个我们自己每个表中的字段称为上次更改日期时间 etc 就查明表最后一次修改的时间
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q

随机推荐

  • CSS 中 SVG“defs”标签的正确行为是什么?

    当编写带有嵌入 CSS 的 SVG 代码时
  • python 覆盖我的列表元素

    对 python 相当新 对 python 类非常新 问题有点复杂 最感谢您的耐心 我有一个 明星 班 很简单 属性 x v 和质量 另一个类 Galaxy 有一个属性 stars 它只是星星对象的列表 class Galaxy numst
  • 如何在 2D 中找到直线与椭圆的交点 (C#)

    我需要找到一条线 其原点是椭圆的中心 与二维椭圆相交的点 我可以轻松找到圆上的点 因为我知道角度 F 和圆的半径 R x x0 R cosF y y0 R sinF 然而我只是不知道我应该如何处理椭圆 我知道它的尺寸 A B 但是找到参数T
  • 在自定义标签助手中使用 Razor 标签助手

    你好 这是我的标签助手 HtmlTargetElement card public class CardTagHelper TagHelper public string Title get set public string Icon g
  • 如何将 pandas 数据框列转换为本机 python 数据类型?

    我有一个数据框 其列数据类型需要映射到 python 本机数据类型 我希望能够从 numpy 获取字典并将每一列转换为其本机类型 例如 numpy object object numpy bool bool numpy string str
  • 如何通过ajax从服务器发送png图像以在浏览器中显示

    我一直在努力完成一项非常正常的任务 我将图像上传并保存到我的网络服务器 并将文件的路径保存在 MySQL 数据库中 这一切都正常 不起作用的是从服务器获取图像文件并通过 ajax 将其显示在页面上 最初我试图从数据库中检索路径 并更新标签的
  • MySQL 原子插入(如果不存在)具有稳定的自动增量

    在 MySQL 中 我使用包含唯一名称以及这些名称的 ID 的 InnoDB 表 客户需要原子地检查是否存在名称 如果不存在则插入新名称 并获取 ID ID 是一个AUTO INCREMENT值 并且在检查现有值时不得失控地增加 无论的设定
  • MySQL 布尔全文搜索中的“~”(波形符)运算符的行为与 MySQL 开发人员网站中所述不同

    我创建了下表fruits CREATE TABLE fruits id tinyint unsigned NOT NULL AUTO INCREMENT name varchar 200 NOT NULL PRIMARY KEY id FU
  • Python PIL Image.tostring()

    我是 Python 和 PIL 新手 我正在尝试遵循代码示例 了解如何通过 PIL 将图像加载到 Python 然后使用 openGL 绘制其像素 下面是一些代码行 from Image import im open gloves200 b
  • HTTPS 握手何时发生?

    我从各种来源了解到 HTTPS 握手是使用 HTTPS 最重要的部分 我在服务器之间内部使用 POST 来传递信息 并希望使用 HTTPS 我想知道实际的 HTTPS 握手持续 保持开放 多久 是否为我发送到服务器的每个 POST 重新完成
  • JTable 单元格中的小部件

    小部件位于JTable列应该与普通列没有区别 对吧 似乎存在行为差异 采取Swing 文档示例 http docs oracle com javase tutorial uiswing components table html data并
  • 如何解决类型的发散隐式扩展

    我想上我的案例课Event K V 按键订购K总是 但我需要能够比较不同值的事件V 如何解决这种发散的隐式扩展 import scala math Ordering object Event case class Event K V key
  • 无法使用 Dancer::Plugin::Database 连接到多个数据库

    我正在使用 Dancer Plugin Database 从我的 dancer 应用程序连接数据库 对于单连接来说它工作得很好 当我尝试多个连接时出现错误 如何添加多个连接 我在 config yml 文件中添加了以下代码 plugins
  • React Native TextInput setState() 问题

    我在 TextInput 的 onChangeText 中遇到了 React Native 的 this setState 问题 我试图在它下面的文本标签中显示 TextInput 的内容 然而 它什么也不显示 setState 调用永远不
  • ajax中如何检查数据是否传递

    我有以下要求来获取注册表以发布数据 但我无法测试它 有人可以帮忙吗 我想看看数据有没有通过 我有 jquery cdn 和 jquery validate 我有plunker http plnkr co edit XmsAh20ZjGwtS
  • 启用静态库中使用的 ifdef 宏

    可以使用静态库中定义的宏吗 我有自己的调试宏 名为TWDEBUG我在为共享而创建的静态库中使用它 如果我将静态库导入到新项目中并使用它 编译器似乎无法识别它 我确实设置了预处理器宏TWDEBUG and Other C flags and
  • 向 VTL 中的对象添加键/值对(适用于 API 网关)

    我正在为 AWS API Gateway 集成响应编写映射模板 我想将键 值对添加到返回 Lambda 函数的 JSON 对象 我的函数返回一些 JSON 如下所示 id 1234 name Foo Barstein 我希望模板输出如下内容
  • 当 AKMicrophone 存在时来自 AKMIDISampler 的连续正弦波

    当存在初始化的 AKMicrophone 时 我在项目中使用 AKMIDISampler 时遇到问题 在采样器上调用 播放 时 除了正确播放木版样本外 第一次 播放 被称为恒定正弦波开始播放 它永远不会停止 我用下面最少的代码复制了这个问题
  • 将 ruby​​ 脚本文件传递到 Rails 控制台

    有没有办法传递 ruby 文件 foo rb到 Rails 控制台 预期结果是控制台启动 Rails 环境后运行文件 或者任何其他方式允许我在 Rails 环境中执行文件 从命令提示符触发 实际上 最简单的方法是运行它load在 的里面ra
  • 从表中获取最后一条记录 ID 的最安全方法

    在 SQL Server 2008 及更高版本中 最好 最安全 最正确的方法是什么 从数据库表中检索ID 基于自动增量主键 检索其他列最后一行的值 例如 SELECT TOP 1 FROM Table ORDER BY DESC SELEC