问一个ASP简单的小问题!
在SQL数据库中有ID,title,content,time,cid,我怎么能在添加一条数据时,并把这条数据的ID(主键)保存到Cid字段里,有这方面经验的兄弟告诉我一下。
用法: conn.Execute("Insert INTO 表名(帐号,密码) VALUES('aaa',123)" ) '添加数据 set rs=conn.execute("Select SCOPE_IDENTITY()") '获取新ID newsid=rs(0) 'newsid为你表中的id rs.close '说明===========================! 'SCOPE_IDENTITY() '取得当前会话最新生成记录的所生成的自动id值ID '当前会话修改的任意表~~标识ID(自动编号) IDENT_CURRENT() '任意会话修改的当前表的最新 标识id ,可以不是你的会话所修改的 @@IDENTITY '当前回话,并包括SQL触发条件所修改的任意表 标识ID ,可能你的会话修改的返回的是 'SCOPE_IDENTITY() ,而@@IDENTITY可能因TRIGGER而增加新的修改记录,则@@IDENTITY返回后者,SCOPE_IDENTITY()返回你直接修改的 注意1: select top 1、select max(id) 等在有上百人同时在操作的数据库将会是不准确的~~ 可能你取得的id是别人添加的记录id而不是你自己的了! 注意2: ACCESS不支持'SCOPE_IDENTITY() ACCESS 使用rs.addnew ........rs.update 后然后直接读取该记录的自动编号 修改insert为 rs.addnew应该不废事 而且从使用SQL语句的安全角度考虑,应该使用rs.open来操作数据库 '不然对非合法数据将可能成为使用注入复合SQL语句的漏洞 MS SQL有三个SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,最常用的就是这个SCOPE_IDENTITY()