table 结构 id 主键int型 标记增量 1 name pwd 两个字段char型
也就是说注册名字然后返回刚才注册的ID就像QQ注册一样
以前不知道解决方法用 SELECT MAX(id)来查询,
但这有个问题,访问量大点的话就不一定返回注册的ID,违背一致性
现找了很多微软文档
原来是有现成SQL语句,发出来共勉之
INSERT INTO userinfo (pwd, name) VALUES (@pwd, @name) SELECT @@IDENTITY AS Id
AS后名字是任取的IDENTITY是主键的意思,所以一定要有主键才可返回
不难理解,就是要用主键来确保插入数据的惟一性
上面SQL使用方法和普通SELECT一样
这个给个C# ASP.net例子
sqlCommand1.CommandText = "INSERT INTO userinfo (pwd, name) VALUES (@pwd, @name) SELECT @@IDENTITY AS Id";
sqlCommand1.Connection = sqlConnection1;
sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@pwd", System.Data.SqlDbType.NVarChar, 20, "pwd"));
sqlCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@name", System.Data.SqlDbType.NVarChar, 50, "name"));
sqlCommand1.Parameters["@name"].Value=name.Text;
sqlCommand1.Parameters["@pwd"].Value=pwd.Text;
sqlConnection1.Open();
System.Data.SqlClient.SqlDataReader R=sqlCommand1.ExecuteReader();
if(R.Read())Response.Write("<script language=javascript>window.alert('注册成功,请记住你的ID:"+R.GetValue(0).ToString()+"');window.close();</script>");
sqlConnection1.Close();
posted on 2005-03-08 09:58 天才.NET 阅读(75)
评论(6) 编辑 收藏
FeedBack:
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 10:01 |
SELECT * FROM TABLE WHERE ID=@IDENTITY
RETURN @@ROWCOUNT
--OVER!
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 10:08 |
请问这样的话IDENTITY ROWCOUNT
如何得到
INSERT INTO userinfo (pwd, name) VALUES (@pwd, @name) SELECT * FROM TABLE WHERE ID=@IDENTITY
RETURN @@ROWCOUNT
是这样写的吗?
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 16:47 |
Declare @NewID int
Declare @RowCount int
select @NewID = @@Identity, @RowCount = @@Rowcount
获取刚才插入的记录,先写Insert语句,然后再Select
SELECT * FROM TABLE WHERE ID=@@IDENTITY
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 17:15 |
也算是一种不错的解决方法,但还是不具有原子性
如果再刚才插入的记录后
然后再Select前有用户也执行插入操作是否会出现问题
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 17:25 |
这个语句和使用存储过程返回id值的原理应该是一样的
# re: [原创]SQL INSERT INTO语句如何返回刚插入的行?
2005-03-08 17:34 |
INSERT INTO userinfo (pwd, name) VALUES (@pwd, @name) SELECT @@IDENTITY AS Id
这是完美的解决方法,高效性 和原子性
插入查询一起完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架