同时向ACCESS两个关联表添加的数据的问题?

cwa 2008-01-23 08:30:32
比如说我有两个表

A表:
id,name

B表:
id,a_id,score

我需要同时向两个表里添加数据,我在向A表里添加一条记录后,需要得到那条新记录的ID号,同时再添加到B表的a_id里,请问用ASP程序如何实现,得到刚添加那条记录的ID号?

多谢!!!


...全文
226 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2008-01-23
  • 打赏
  • 举报
回复
top 1 或max的取法, 在并发时是有问题的, 基于这一点, 基本上都不用这种方式的.
yangtzeu 2008-01-23
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"-->
<%
'对于A表
name1=request("name1")
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from a "
rs.open sql,conn,3,3
rs.addnew()
rs("name")=name1
rs.update
'这里得到a_id
a_id=rs("id")

rs.close
set rs=nothing

'
对于B表
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from b "
rs.open sql,conn,3,3
rs.addnew()
rs("a_id")=a_id
rs("score")=score 'score根据你实际来源
rs.update
rs.close
set rs=nothing
%>
yangtzeu 2008-01-23
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"-->
<%
'对于A表

name1=request("name1")
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from a "
rs.open sql,conn,3,3
rs.addnew()
rs("name")=name1
rs.update
'这里得到a_id
a_id=rs("id")
rs.close
set rs=nothing

'
对于B表
set rs=server.createobject("adodb.recordset")
sql="select top 1 * from b "
rs.open sql,conn,3,3
rs.addnew()
rs("a_id")=a_id
rs("score")=score 'score根据你实际来源
rs.update
rs.close
set rs=nothing
%>
fcuandy 2008-01-23
  • 打赏
  • 举报
回复
我写的sql的方法.

access里没有触发器. 可以用我的第一种方法.
access同样支持 @@identity 函数.

将 语句中的 scope_identity() 改为 @@identity,稍作调整


Dim SQL
SQL = "INSERT ta(name) values('aaa');"
SQL = SQL & "INSERT tb(a_id,score) VALUES(SCOPE_IDENTITY()," & score的asp变量 & ")"

Conn.Execute(SQL)
cwa 2008-01-23
  • 打赏
  • 举报
回复
ACCESS里没有触发器呀
fcuandy 2008-01-23
  • 打赏
  • 举报
回复
Dim SQL
SQL = "INSERT ta(name) SELECT 'aaa';"
SQL = SQL & "INSERT tb(a_id,score) SELECT SCOPE_IDENTITY()," & score的asp变量

Conn.Execute(SQL)


如果 ta表没有其它的东西影响,比如触发器之类的, 也可以将 SCOPE_IDENTITY() 改用为 @@IDENTITY


相当于执行 T-SQL 语句为:

INSERT ta (name) SELECT 'name的值'
INSERT tb SELECT SCOPE_IDENTITY(),score的值


也可以用触发器来处理. 但有一个问题,触发器无所获得score参数值.

当然也可以建个存储过程来处理, 不过所执行的操作跟 conn所执行的两条insert语句是一样的.

要求性高的话,需要进行事务处理.

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧