- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - Select Into
- SQL - Insert Into Select
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - Where 子句
- SQL - Top 子句
- SQL - Distinct 子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL - Having 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - Union vs Join
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 复合键
- SQL - 候选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - Min & Max
- SQL - 空值函数
- SQL - 检查约束
- SQL - 默认约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - IDENT_CURRENT() 函数
SQL 的IDENT_CURRENT()函数返回为指定表或视图上的标识列生成的最后一个标识值。生成的最后一个标识值可以是任何会话和任何范围。
当 IDENT_CURRENT 值为 NULL 时,表示该表从未包含行或已被截断,在这种情况下,IDENT_CURRENT 函数返回种子值(种子是插入到表中加载的第一行的标识列中的值;默认值为 1)。
IDENT_CURRENT 类似于 SQL Server 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。所有三个函数都返回最后生成的标识值。
IDENT_CURRENT 返回在任何会话和范围内为指定表生成的最后一个标识值。
SCOPE_IDENTITY 返回在当前会话和当前范围内为任何表生成的最后一个标识值。
@@IDENTITY 返回在当前会话中跨所有范围为任何表生成的最后一个标识值。
注意 - 对具有连接的视图进行 IDENT CURRENT 操作的结果为 NULL。这可能适用于无论只有一个连接表还是多个连接表具有标识列。
语法
以下是 SQL IDENT_CURRENT() 函数的语法:
SELECT IDENT_CURRENT('table_or_view');
其中 table_or_view 是返回其标识值的表或视图的名称。table_or_view 是一个 varchar,没有默认值。
示例
让我们看一下 SQL 中 IDENT_CURRENT 函数的示例
为了演示这一点,我们使用 CREATE 语句创建了两个名为“AAA”和“BBB”的表,这两个表都包含一个标识列,如下所示。
CREATE TABLE AAA( ID INT IDENTITY(1, 1), NAME VARCHAR(30) ); CREATE TABLE BBB( ID INT IDENTITY(1,1), NAME VARCHAR(30) );
现在,我们必须使用 SELECT 语句显示创建的表。
SELECT * FROM AAA; SELECT * FROM BBB;
让我们使用 SQL IDENT_CURRENT 函数查看这些表中的当前标识值。
以下是查询:
SELECT IDENT_CURRENT('AAA') AS LAST_IdentityValue; SELECT IDENT_CURRENT('BBB') AS LAST_IdentityValue;
输出
以下是上述查询的输出,它显示了默认的标识值,即 1。
AAA Table − +---------------------+ | LAST_IdentityValue | +---------------------+ | 1 | +---------------------+ BBB Table − +---------------------+ | LAST_IdentityValue | +---------------------+ | 1 | +---------------------+
正如我们所看到的,上述输出中两个表的当前标识值都是 1,这是标识列的种子值,因为尚未将任何记录插入到这些表中。
示例
在以下示例中,我们将在两个表中插入一些值并显示这些表的当前标识。
让我们使用 INSERT 语句将记录插入这些表
-- AAA Table - INSERT INTO AAA (NAME) VALUES('tutorialspoint'); INSERT INTO AAA (NAME) VALUES('Sarika Singh'); -- BBB Table - INSERT INTO BBB (NAME) VALUES('tutorix'); INSERT INTO BBB (NAME) VALUES('Aman'); INSERT INTO BBB (NAME) VALUES('Vivek');
让我们使用 SELECT 语句显示插入的记录
-- AAA Table - SELECT * FROM AAA; -- BBB Table - SELECT * FROM BBB;
以下是 AAA 表的详细信息:
+----+-----------------+ | ID | NAME | +----+-----------------+ | 1 | tutorialspoint | +----+-----------------+ | 2 | Sarika Singh | +----+-----------------+
以下是 BBB 表的详细信息:
+----+-----------------+ | ID | NAME | +----+-----------------+ | 1 | tutorix | +----+-----------------+ | 2 | Aman | +----+-----------------+ | 3 | Vivek | +----+-----------------+
让我们使用 IDENT_CURRENT 函数查看表中的最后一个标识值。
以下是查询:
-- AAA Table - SELECT IDENT_CURRENT('AAA') AS LAST_IdentityValue; -- BBB Table - SELECT IDENT_CURRENT('BBB') AS LAST_IdentityValue;
输出
以下是上述查询的输出:
AAA Table − +---------------------+ | LAST_IdentityValue | +---------------------+ | 2 | +---------------------+ BBB Table − +---------------------+ | LAST_IdentityValue | +---------------------+ | 3 | +---------------------+