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

ASP
在ASP程序中实现数据库事务控制
怎样开始一个ASP网站的设计
ASP中使用ServerVariables集合详解
关于解决商务平台ASP程序的源代码泄漏设想与思考
ASP通用模板类
javascript利用xmlhttp获得服务器时钟的方法
asp+oracle分页程序类(XDOWNPAGE2.0)
ASP中实现小偷程序的原理和简单
asp中vbscript访问xml文件
ASP防SQL注入攻击程序
用ASP读INI配置文件的函数
asp实现关键词获取(各搜索引擎,gb2312及utf-8)
xmlhttp组件获取远程文件并筛选出目标数据
XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案
WEB打印设置解决方案一(通过修改注册表改变IE打印设置)
WEB打印设置解决方案二(利用ScriptX.cab控件改变IE打印设置)
WEB打印设置解决方案三(FileSystem组件实现WEB打印)
WEB打印设置解决方案四(在ASP中实现网络打印功能)
ASP实用技巧 强制刷新网页
Access通用-自动替换数据库中的字符串

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 216 ::
收藏到网摘: 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