• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

用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)

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

请问是怎么回事呀
...全文
14 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
急用,在线等待!
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-07 11:25
社区公告
暂无公告