SQL IDENT_CURRENT()函数
SQL IDENT_CURRENT() 函数返回指定表或视图的标识列上生成的最后一个标识值。生成的最后一个标识值可用于任何会话和范围。
当IDENT_CURRENT值为NULL时,意味着该表从未包含行或已被截断,在这种情况下,IDENT_CURRENT函数返回种子值(种子值是插入到表中第一行的标识列的值;默认值为1)。
IDENT_CURRENT与SQL服务器标识函数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 |
+---------------------+