我正在尝试使用多重插入语法获取我插入的行的生成密钥(或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#">
我在CF10和Railo 4.2中结合SQL Server和MySQL运行了这个。
CF10与SQL Server - 没有返回GeneratedKey。只有recordCount变量
RecordCount = 2
CF10与MySQL - 获取标识列作为列表,但错误的recordCount
GeneratedKey = 1,2
RecordCount = 1
带有SQL Server的Railo 4.2 - 仅获取最后一个标识列
GeneratedKey = 2
RecordCount = 2
带有MySQL的Railo 4.2 - 将标识列作为列表,并使用正确的recordCount
GeneratedKey = 1,2
RecordCount = 2
所以看起来4个排列中没有一致性。但我最紧迫的问题是,是否有办法从SQL Server运行CF10生成密钥。有吗?
答案 0 :(得分:2)
使用sql输出
<cfquery name="qrResult">
INSERT INTO TempPerson( lastName, firstName )
OUTPUT Inserted.PersonID
VALUES( 'Smith', 'Michael' ), ('Jones','Ricky')
</cfquery>
然后可以将其用作常规数据