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

ASP
ASP编程中20个非常有用的例子
省名与城名下拉选择框联动
ASP有函数可以把某个网页通过STREAM下载吗?
用Regular Expression来改变HTML代码
控制输出字符串的长度,可以区别中英文
教你做小偷程序 容易学
小偷程序原理和简单示例
好漂亮的钟[代码]
实现WEB中的@虚拟域名系统 原理篇
ASP对excel的操作
将服务器端文件夹下的文件,按文件建立的时间先后排序
存储过程编写经验和优化措施
存储过程入门
在ASP中怎樣用Excel寫報表
在ASP中使用Oracle数据库技巧(1)
在ASP中使用Oracle数据库技巧(2)
在ASP中使用断开的记录集
披著羊皮的大野狼 Session
两级联动的select XML版
判断checkbox是否至少有选择一项

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


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