mysql中获得自增主键的最大序列号的SQL语句? 如何能获得mysql中获得自增主键的最大序列号?比如说:我往数据库中插入一行,主键增加到了10,然后我把这行删除了,我怎么能得到主键列目前的最大的序列号?@@identity是不是不行? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT MAX(IDD) FROM TB Select Scope_Identity()就可以获取到了,要跟insert语句在一起. ACCESS sql 都是一样的用//C#string query = "Insert Into Categories (CategoryName) Values (@CategoryName);" +"Select Scope_Identity()";int ID;string connect = @"Server=.\SQLExpress;AttachDbFilename=|DataDirectory|Northwind.mdf;" + "Database=Northwind;Trusted_Connection=Yes;";using (SqlConnection conn = new SqlConnection(connect)){ using (SqlCommand cmd = new SqlCommand(query, conn)) { cmd.Parameters.AddWithValue("@CategoryName", Category.Text); conn.Open(); ID = (int)cmd.ExecuteScalar(); }} DECLARE @TB TABLE(ID INT IDENTITY(1,1),NUM INT)INSERT @TB SELECT 1 UNION ALLSELECT 1 UNION ALLSELECT 1 UNION ALLSELECT 1 SELECT * FROM @TBDELETE @TB WHERE ID=(SELECT MAX(ID) FROM @TB)SELECT @@identity/*(所影响的行数为 4 行)ID NUM ----------- ----------- 1 12 13 14 1(所影响的行数为 4 行)(所影响的行数为 1 行) ---------------------------------------- 4(所影响的行数为 1 行) @@IDENTITY返回最后插入的标识值。语法@@IDENTITY返回类型numeric注释在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。 ListViewItem LargeIcon模式下 自绘后焦点问题 用.net从PLC里面读出数据的问题 为自定义控件添加事件 请问有必要学习IL妈? 关于命名引用的问题 急:panel中添加窗体后怎么会这样啊!!! 哪里有rational xde for dotnet 6.12 下载 28岁再学从C语言,C#到.net会不会太晚 正则表达式问题,急。。。。。。。。。 C#如何实现五秒刷新一次数据库数据,并对当前数据与五秒前的数据进行比较判定 socket 下载图片 急急,请大家帮忙 C#如何将DateTime的12小时格式转换为24小时时间格式????
Select Scope_Identity()就可以获取到了,要跟insert语句在一起. ACCESS sql 都是一样的用
//C#
string query = "Insert Into Categories (CategoryName) Values (@CategoryName);" +
"Select Scope_Identity()";
int ID;
string connect = @"Server=.\SQLExpress;AttachDbFilename=|DataDirectory|Northwind.mdf;" +
"Database=Northwind;Trusted_Connection=Yes;";
using (SqlConnection conn = new SqlConnection(connect))
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("@CategoryName", Category.Text);
conn.Open();
ID = (int)cmd.ExecuteScalar();
}
}
INSERT @TB
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 SELECT * FROM @TBDELETE @TB WHERE ID=(SELECT MAX(ID) FROM @TB)SELECT @@identity
/*(所影响的行数为 4 行)ID NUM
----------- -----------
1 1
2 1
3 1
4 1(所影响的行数为 4 行)
(所影响的行数为 1 行)
----------------------------------------
4(所影响的行数为 1 行)
返回最后插入的标识值。语法
@@IDENTITY返回类型
numeric注释
在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。