My_Insert_into = "111"
sql1="insert into lipin_test_1 (kkk) values ('"&My_Insert_into&"')"
sql2="insert into lipin_test_2 (id,kkk) values(SCOPE_IDENTITY(),'"&My_Insert_into&"')"
conn.execute(sql1)
conn.execute(sql2)
自己测试用的表都是好的。改到特定的表 SCOPE_IDENTITY()或者@@IDENTITY就总是返回NULL 了。而且第一个插入语句也失败了。A表 主键ID 标识 是 标识种子46560 标识递增量1
B表 主键ID 标识 否下面这样却都可以插入 只是不能解决并发的问题
My_Insert_into = "111"
sql="insert into Atable (kkk) values ('"&My_Insert_into&"')"
conn.execute(sql)
sql="select max(id) as 'pp' from Atable"
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open sql,conn,3,2
maxid=rs("pp")
sql="insert into Btable (id,kkk) values ("&maxid&",'"&My_Insert_into&"')"
conn.execute(sql)
sql1="insert into lipin_test_1 (kkk) values ('"&My_Insert_into&"')"
sql2="insert into lipin_test_2 (id,kkk) values(SCOPE_IDENTITY(),'"&My_Insert_into&"')"
conn.execute(sql1)
conn.execute(sql2)
自己测试用的表都是好的。改到特定的表 SCOPE_IDENTITY()或者@@IDENTITY就总是返回NULL 了。而且第一个插入语句也失败了。A表 主键ID 标识 是 标识种子46560 标识递增量1
B表 主键ID 标识 否下面这样却都可以插入 只是不能解决并发的问题
My_Insert_into = "111"
sql="insert into Atable (kkk) values ('"&My_Insert_into&"')"
conn.execute(sql)
sql="select max(id) as 'pp' from Atable"
Set rs = Server.CreateObject ("ADODB.Recordset")
rs.Open sql,conn,3,2
maxid=rs("pp")
sql="insert into Btable (id,kkk) values ("&maxid&",'"&My_Insert_into&"')"
conn.execute(sql)
create proc p(@val varchar(1000))
as
begin
begin tran
insert Atable(kkk) values(@val)
insert Btable(id,kkk) select max(id),@val from Atable
if @@error=0
commit tran
else
rollback tran
end
FOR INSERT AS
BEGIN
INSERT lipin_test_2(id,kkk) select id,kkk from inserted
END
sql="insert... insert ...@@identity"
conn.execute(sql)
=============================================或者該用IDENT_CURRENT('table_name'),看符不符合要求?
当前插入的难道不是最大的? 莫非楼主的id列定义是identity(int,10000,-1)?貌似楼主想要的就是当前插入的......