這變得有點棘手。我想輸出剛剛插入的記錄的主鍵。我做的多條記錄的插入:獲取我剛剛插入的記錄的主鍵
我的INSERT語句看起來是這樣的:
<cfquery name="imprtFiles" datasource="#mydsn#" result="#result#">
<cfoutput query="myFileList">
INSERT INTO myTablename (mycolumn) VALUES ('#valuegohere#');
</cfoutput>
</cfquery>
<cfset newID = result.IdentityCol>
<cfoutput>#newID#</cfoutput>
而這將引發CF錯誤:
"Element IDENTITYCOL is undefined in RESULT."
所以我想有希望以另一種方式獲得我剛剛插入的記錄的PK。有什麼想法嗎?
下面是我根據這個例子中使用的代碼:
<cftransaction>
<cfquery name="importFiles" datasource="#dsn#" result="result">
<cfoutput query="myFileList">
INSERT INTO tbl_logfiles (originalFile, originalFileSize) VALUES ('#name#', '#length#');
</cfoutput>
</cfquery>
<cfquery name="getID" datasource="#dsn#">
select Max(fileID) as NewID from tbl_logfiles;
</cfquery>
</cftransaction>
<cfset newID = getID.NewID>
<cfoutput> #newID# </cfoutput>
我從#newID#
得到的輸出是280,也就是在這個時候我的數據庫表中的最高的fileid。奇怪的。
我想要得到的是最後一個我輸入的N
記錄。我希望有一種方法可以根據cfquery.result
從cfoutput
標籤以某種方式輸出。
感謝MR的鏈接。我已經發現了這一點,並在我的劇本中嘗試過,但它一直在失敗。這些頁面上的解決方案適用於不同的數據庫類型。我嘗試了MSSQL解決方案,它不起作用,也許是因爲我的版本。 – Robbiegod 2011-04-27 19:53:25
你試過了哪一個?我試過所有這些或其他,他們都工作(在SQL Server 2000中) – 2011-04-27 19:56:16
讓我試試你的編輯,我絕對嘗試類似的東西... – Robbiegod 2011-04-27 21:17:40