最佳实践:.NET:如何针对Oracle数据库返回PK?
使用SQLServer,似乎普遍接受的是,在插入的末尾添加SELECT SCOPE_IDENTITY()是返回新插入记录的PK的最佳方法,假设您正在为pk使用自动增量字段.
但是,我似乎无法找到Oracle的等价物. 最佳实践似乎是使用序列来生成PK,但是如何实现甚至可以有不同的选项.您是否将其留给开发人员插入sequence.nexval,或使用触发器? 在任何一种情况下,获取新ID似乎是一个常见问题. 我遇到的建议和解决方案包括: >创建一个返回PK的存储过程 对于这种情况,“最佳实践”解决方案应该是什么? 您可以使用RETURNING子句在Oracle存储过程中执行此操作.例如: TABLEA具有NAME和EMP_ID.插入记录时,内部将填充EMP_ID. INSERT INTO TABLEA(NAME)VALUES(‘BOB’)将EMP_ID返回到o_EMP_ID; 这假设该行位于存储过程中,输出参数为o_EMP_ID. 希望有帮助……如果没有,这里有一个更详细的例子: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/returninginto_clause.htm (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |