1
我有一个相对简单的存储过程,它运行一个插入,然后尝试返回最后插入的ID。这样做是为了让我可以通过SCOPE_IDENTITY()获得ID。这对我很好。但之后,我得到了一些报告,在某些机器上,存储的proc会导致重复的结果。MS Access中存储过程引起的返回记录(accdb)
调查后,我发现原因是使用了属性ReturnsRecords。如果为true,它将运行一次查询两次!对于选择;谁在乎。尽管如此,它会导致我的数据库中出现重复。
设置ReturnsRecords为false可以摆脱这个问题,但它会破坏存储过程的目的(我绝对必须获取正确的最后插入的ID)。
我的问题是这样的:我将如何去插入此记录并获取新记录的ID,同时解决此问题?
附加信息:
- 我目前使用DAO
- 我已经试过ADO.Command方法,但它是 很容易出错,而且似乎并不 工作,输出参数为我。
- 我使用存储过程仅用于保留范围。我没有心思使用存储过程。我只需要一个可靠的方法来获取最后插入的行的ID。
- 这是一个ACCDB
- 这是发生在2007年访问
- 我的数据库后端是MSSQL Server 2008的
任何帮助或洞察力的赞赏。
这是它目前是如何工作的,只是当我尝试使用输出参数,我得到的多步OLE-DB的错误。我将如何去检索输出值? – Dan 2011-02-17 21:25:47