CFQuery从多个插入到SQL Server获取GeneratedKey

use*_*775 5 t-sql coldfusion railo lucee

我试图使用多插入语法获取我插入的行的生成密钥(或identitycol).

<cfquery>
        CREATE TABLE TempPerson
            (
            PersonID INT NOT NULL IDENTITY (1,1) PRIMARY KEY,
            LastName varchar(20),
            FirstName varchar(20)
            );
</cfquery>

<cfquery result="qrResult">
    INSERT INTO TempPerson( lastName, firstName )
    VALUES( 'Smith', 'Michael' ), ('Jones','Ricky')
</cfquery>

<cfdump var="#qrResult#">
Run Code Online (Sandbox Code Playgroud)

我在CF10和Railo 4.2中结合SQL Server和MySQL运行了这个.

带有SQL Server的CF10 - 没有返回GeneratedKey.只有recordCount变量

RecordCount = 2
Run Code Online (Sandbox Code Playgroud)

CF10与MySQL - 获取标识列作为列表,但错误的recordCount

GeneratedKey = 1,2
RecordCount = 1
Run Code Online (Sandbox Code Playgroud)

带有SQL Server的Railo 4.2 - 只获取最后一个标识列

GeneratedKey = 2
RecordCount = 2
Run Code Online (Sandbox Code Playgroud)

带有MySQL的Railo 4.2 - 获取标识列作为列表,以及正确的recordCount

GeneratedKey = 1,2
RecordCount = 2
Run Code Online (Sandbox Code Playgroud)

所以看起来4个排列中没有一致性.但我最紧迫的问题是,是否有办法从SQL Server运行CF10生成密钥.在那儿?

Jam*_*ler 2

使用sql输出

<cfquery name="qrResult">
  INSERT INTO TempPerson( lastName, firstName )
  OUTPUT Inserted.PersonID
  VALUES( 'Smith', 'Michael' ), ('Jones','Ricky') 
</cfquery>
Run Code Online (Sandbox Code Playgroud)

然后可以将其用作常规数据