用asp取 @@IDENTITY 值出错!

ppxstar 2003-05-07 11:25:32
语句内容
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三') SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错

出错提示
错误类型:
ADODB.Recordset (0x800A0CC1)

其它情况
数据已经正确插入到数据库里

请问是怎么回事呀
...全文
49 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppxstar 2003-05-08
  • 打赏
  • 举报
回复
CrazyFor(蚂蚁) 我试过不行
dapper(太阳雪) 那就不能在插入的同时取出值了,没有其它方法了吗?
blactte 2003-05-08
  • 打赏
  • 举报
回复
Sql="INTO datbaseinfo(username) VALUES ('张三') go SELECT @@IDENTITY as userid"
sql server两条语句之间需要写go
当作一个批处理来完成
ttyp 2003-05-08
  • 打赏
  • 举报
回复
前面加上set nocount on;看看
Sql="set nocount on;INSERT INTO datbaseinfo(username) VALUES ('张三'); SELECT @@IDENTITY as userid"
dapper 2003-05-07
  • 打赏
  • 举报
回复
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三') SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错

insert 语句是无返回结果的sql, userid=rs("userid") 当然去不到值了。在你写的句子中SELECT @@IDENTITY AS 'userid' 是作为一个值 使用了,所以结果是对的。而最终conn执行的是一个insert ,所以不会有返回记录集。
CrazyFor 2003-05-07
  • 打赏
  • 举报
回复
TRY:
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三'); SELECT @@IDENTITY as userid"
Set Rs=Conn.execute(sql)
userid=rs("userid")'此处出错
ppxstar 2003-05-07
  • 打赏
  • 举报
回复
再说,这样的话那我还不如这样写
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三')"
Set Rs=Conn.execute(sql)

Sql="SELECT top 1 id datbaseinfo order by id desc"
Set Rs=Conn.execute(sql)
userid=rs("id")

我就是不想多打开记录集

ppxstar 2003-05-07
  • 打赏
  • 举报
回复
试了,执行正确,但取到的值为空,不是正确的取值
mjhnet 2003-05-07
  • 打赏
  • 举报
回复
Sql="INSERT INTO datbaseinfo(username) VALUES ('张三')"
Set Rs=Conn.execute(sql)

Sql="SELECT @@IDENTITY AS 'userid'"
Set Rs=Conn.execute(sql)
userid=rs("userid")

这样试试
ppxstar 2003-05-07
  • 打赏
  • 举报
回复
急用,在线等待!

34,871

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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