[英]How to get last inserted id on ms sql server with FireDac component?
与FireDac,如何获取ms sql服务器上的最后插入的id? 谢谢
使该id成为一个身份列,然后通过使用获取它
SELECT SCOPE_IDENTITY()
在插入语句之后
请参考以下链接
使用自动递增的字段类型
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 @@identity
或SELECT SCOPE_IDENTITY
事后请求都是脆弱且危险的。 当您将数据插入表A中时,其触发器可能会将数据插入相关的表B和C中,标识将调用C的autoinc,而不是您从其开始插入的表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.