当前位置: 首页 > 图文教程 > 网络编程 > ASP > SQL"不能为新插入的行确定标识"错误的解决方法

ASP
一段ASP 伪静态代码
asp的程序能实现伪静态化的方法
实例讲解实现抓取网上房产信息的ASP程序
[图]Flash+ASP实现电子互动地图在线标注功能
asp下多个域名后缀同时查询的域名查询系统
用ASP实现对ORACLE数据库的操作
用ASP做的DNS LOOKUP程序
用存储过程、GetRows()、抽取10万条数据的速度测试
asp中利用CSW中文分词组件来实现自己网站的内容关键词自动提取
ASP+JS三级联动下拉菜单[调用数据库数据]
用ASP实现距指定日期的倒记时程序源码
详细讲解ASP脚本循环语句
ASP中如何判断一个字符是不是汉字
将ACCESS转化成SQL2000要注意的问题
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
在ASP中使用均速分页法提高分页速度的方法
ASP+COM不得不注意的问题
ASP生成动态flash的工具与介绍
用asp实现的数据库中存取文件的代码
asp的通用数据分页类

ASP 中的 SQL"不能为新插入的行确定标识"错误的解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 120 ::
收藏到网摘: n/a

下列代码运行将出错(不能为新插入的行确定标识),即新记录不能为自己的另一个字段赋予新生成标识的值 这种情况在Access下可以通过,但SQL则不行,在百度搜索解决方法,发现N多人出现同样问题却找不到解决办法:
复制代码 代码如下:

set rs=server.CreateObject("adodb.recordset")
rs.open "select * from t1",conn,1,3
rs.addnew()
rs("data")="abc123"
rs.update
rs("data")=rs("id")
rs.update
rs.close
conn.close

(注:id字段为标识值(identity(1,1)) )
在SQL数据库下,只能用以下的方法:
复制代码 代码如下:

dim newID
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from t1",conn,1,3
rs.addnew()
rs("data")="abc123"
rs.update
newID=rs("id")
'这里注意,cursorType必须为1才能正确获取标识值,且必须update()后获取
rs.close
rs.open "select * from t1 where id=" &newID,conn,1,3
rs("data")=newID
rs.update
rs.close
conn.close