5

複数の挿入構文を使用して、挿入する行の生成されたキー (または 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#">

SQL Server と MySQL の両方と組み合わせて、CF10 と Railo 4.2 の両方でこれを実行しました。

SQL Server を使用する CF10 - GeneratedKey が返されません。recordCount 変数のみ

RecordCount = 2

MySQL を使用する CF10 - ID 列をリストとして取得しますが、recordCount が間違っています

GeneratedKey = 1,2
RecordCount = 1

Railo 4.2 with SQL Server - 最後の ID 列のみを取得します

GeneratedKey = 2
RecordCount = 2

Railo 4.2 with MySQL - ID 列をリストとして取得し、適切な recordCount を取得する

GeneratedKey = 1,2
RecordCount = 2

したがって、4 つの順列に一貫性がないように見えます。しかし、私の最も緊急の問題は、CF10 で実行されている SQL Server から生成されたキーを取得する方法があるかどうかです。ある?

4

1 に答える 1

2

SQL 出力の使用

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

その後、通常のデータとして使用できます

于 2015-08-08T05:25:47.930 に答える