如何获取新创建的记录的ID(PK)?

ale*_*ale 2 coldfusion identity sql-server-2005

给出一张表:

CREATE TABLE [GENERIC_TABLE] (
  [RECORD_ID] [int] IDENTITY(1,1) NOT NULL,
  [SHORT_DESC] [varchar] (50) NULL,
 CONSTRAINT [PK_GENERIC_TABLE] PRIMARY KEY CLUSTERED
 ...
Run Code Online (Sandbox Code Playgroud)

我想INSERT一条记录,并将新RECORD_ID的值转换为ColdFusion变量.

我的CFQUERY应该是什么样的?

(不可否认,这可能是一个过于简单的问题.在我的辩护中,我习惯使用Oracle,而不是SQL Server.)

这适用于ColdFusion 8,但版本中立的解决方案很好.

小智 12

如果在cfquery标记中设置result属性,则返回主键而不使用额外的SQL

<cfquery datasource="x" result="resultName">
INSERT INTO...
</cfquery>

<cfset newID = resultName.IDENTITYCOL />
Run Code Online (Sandbox Code Playgroud)
  • MSSQL: IDENTITYCOL
  • 甲骨文: ROWID
  • SYBASE: SYB_IDENTITY
  • Informix的: SERIAL_COL
  • MySQL的: GENERATED_KEY

  • resultName.generatedkey适用于CF9中的所有数据库 (3认同)
  • 本网站的/评论功能表明这是您发布的第一个答案.第一篇文章的好工作!欢迎来到StackOverflow. (3认同)