簡體   English   中英

如何使用FireDac組件在MS SQL Server上獲取最后插入的ID?

[英]How to get last inserted id on ms sql server with FireDac component?

與FireDac,如何獲取ms sql服務器上的最后插入的id? 謝謝

使該id成為一個身份列,然后通過使用獲取它

SELECT SCOPE_IDENTITY()

在插入語句之后

請參考以下鏈接

http://msdn.microsoft.com/en-us/library/ms190315.aspx

使用自動遞增的字段類型

http://www.da-soft.com/anydac/docu/Auto-Incremental_Fields.html

這將提供類似的代碼

DataSet.Insert;
.... 
DataSet.Post; 
id := DataSet.FieldByName('ID').AsInteger;

另一種方法可能是制作適當的SQL語句,如


AnyDAC作者還建議通過http://docs.embarcadero.com/products/rad_studio/firedac/uADCompClient_TADCustomConnection_GetLastAutoGenValue@String.html獲取特定於DBMS的工具的特殊方法。

但是所有帶有SELECT @@identitySELECT SCOPE_IDENTITY事后請求都是脆弱且危險的。 當您將數據插入表A中時,其觸發器可能會將數據插入相關的表B和C中,標識將調用C的autoinc,而不是您從其開始插入的表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM