用SQL SERVER如何实现插入数据后立刻取出插入的数据的id?在线等待,急~~~~~~~

crackzzy 2003-06-05 05:35:39
如题。我要往一个SQL数据库里插入一个图片。而且要在插入后立即获得这个图象的id。我想过用SELECT TOP 1 FROM table取id的,但是这样怕会起冲突,万一多人同时更新的话会出错。
所以我又想能不能根据图象的字段大小来配合进行判断,但是我不知道SQL里有什么函数是可以取得image字段的长度的?
或者大家还有什么好的办法?SOS~~~~
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy1086 2003-06-07
  • 打赏
  • 举报
回复
关注
buaawjh 2003-06-06
  • 打赏
  • 举报
回复
那是参数
crackzzy 2003-06-06
  • 打赏
  • 举报
回复
晕哦~~
这些语句我都看不懂啊,特别是那个@@是什么意思啊?
不过我倒是通过别的途径解决这个问题了。
我把id字段设置为主键,但是没有设置递增种子。
然后我用SELECT TOP 1 FROM table ORDER BY id DESC
把最高条id取出来以后,再把id加一,然后
INSERT INTO table(id,ziduan) VALUES(@idwithaddone,@ziduan)
这样就算有两个用户同时取到了最高的id,但是第二个用户在插入数据的时候肯定会因为id相同而引发一个异常。我试过了。asp.net能够捕获这个异常
哪怕是sqlcommand.ExecuteNonQuery();还是能够捕获这个异常。
这样我有可以用一个死循环来反复取id,id+1,插入,直到成功为止。
此方法可能还有不完善的地方。请看到本帖的朋友广提意见。呵呵~
fxmpch 2003-06-05
  • 打赏
  • 举报
回复
sqlString = "INSERT INTO " & strTableName & "(" & strSqlFieldName & ")"
sqlString &= " VALUES (" & strSqlFieldValue & ")"
' 得到类型为标识自增的主键的值的查找语句
sqlString &= ";SELECT " & Me.TableKey & " FROM " & strTableName
sqlString &= " WHERE (" & Me.TableKey & "= @@IDENTITY)"
mySqlCommand.CommandText = sqlString
mySqlCommand.Connection = myConn.dbConn
Try
mySqlCommand.Connection.Open()
' 得到类型为标识自增的主键的值
lngNewRecordID = mySqlCommand.ExecuteScalar
ayine 2003-06-05
  • 打赏
  • 举报
回复
...同上
暗石绿 2003-06-05
  • 打赏
  • 举报
回复
string str = "select @@identity from table";
.....
SqlCommand sqlCmd = new SqlCommand(str,sqlConn);
Int32 id = Convert.ToInt32(sqlCmd.ExecuteScalar());
forestyang 2003-06-05
  • 打赏
  • 举报
回复
insert into....
select id=@identity
zwztu 2003-06-05
  • 打赏
  • 举报
回复
string sqlstr="insert into tablename values('"+temps"')";
sqlstr+=";Select @@identity";
int id = conn.ExecuteScalar(sqlstr);
xiajianfeng 2003-06-05
  • 打赏
  • 举报
回复
create table aa(a int identity(1,1))
可以创建自增序号的列;



至于:
"我不知道SQL里有什么函数是可以取得image字段的长度的?"
我想不是个好办法;
因为万一有长度相同的就不好办了;

:)
web1999 2003-06-05
  • 打赏
  • 举报
回复
“万一多人同时更新的话会出错”这是不可能的,你可以这样处理,先插入临时记录(随机数,记住他的值),然后更新记录,找临时记录(随机数),他的ID就是您要找的

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧