请教如何查询SQL SERVER增加记录的ID值
我使用SPT的方式在SQL SERVER表A中增加一条记录,还没有保存,现在在保存这条记录之前,我需要获得这条新增记录的ID值,然后在另外一个表B中增加多条记录,这些多条记录关联着前面获取的ID值,将后面表B的某个字段值更新为获取的ID值后,然后一起保存。请问如何获取ID值,(程序是在多用户情况下使用的,所以选择在保存记录前获取ID值)
程序代码:SQLSetprop(nhandle,'Transactions',2) && 开启远程手工事务
BEGIN TRANSACTION
select c_t &&表1
a1=TABLEUPDATE(.t.)
**Ac3=SQLEXEC(nhandle,"SELECT SCOPE_IDENTITY() AS NewID ","c_id") && 现在连接处于打开状态
Ac3=SQLEXEC(nhandle,"SELECT MAX(id) AS NewID from yksb.dbo.shebei_zl","c_id") && 现在连接处于打开状态
IF Ac3<0
END TRANSACTION
= SQLDISCONNECT(nhandle)
MESSAGEBOX("读取数据错误!",0,"错误信息")
RETURN TO MASTER
ENDIF
SELECT c_id
myid=NewID
UPDATE c_t2 SET id_zl=myid &&直接修改中间表
select c_t2 &&表2
a2=TABLEUPDATE(.t.)
IF a1=.t. AND a2=.t.
END TRANSACTION
ELSE
rollback
*END TRANSACTION
ENDIF
SQLSetprop(nhandle,'Transactions',1) && 开启远程自动事务
= SQLDISCONNECT(nhandle) &&关闭
IF a1=.t. AND a2=.t.
IF 弹出对话=.t.
MESSAGEBOX("数据保存成功!",0,"信息")
endif
ELSE
MESSAGEBOX("数据保存失败!",0,"信息")
弹出对话=.t.
RETURN TO master
endif [此贴子已经被作者于2024-5-26 10:15编辑过]