繁体   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