Ect*_*opy 3 sql t-sql sql-server coldfusion transactions
我读这个回答有关获取输入到数据库的最后一个标识值的不同方法.
根据我的理解,@@IDENTITY
这通常是一个非常糟糕的主意,因为它可能会返回一个与您预期不同的标识 - 例如最近由触发器创建的标识值.
但是,如果您的代码在交易中怎么办?
例如,这是我正在做的事务的简化版本(使用ColdFusion):
<cftransaction>
<cfquery name="queryInsertA" datasource="source">
INSERT INTO tableA (columnName) VALUES (value)
</cfquery>
<cfquery name="queryInsertB" datasource="source">
INSERT INTO tableB (fkey_tableA, columnName) VALUES (@@IDENTITY, value)
</cfquery>
</cftransaction>
Run Code Online (Sandbox Code Playgroud)
因为," 如果事务成功,那么在事务期间进行的所有数据修改都会被提交并成为数据库的永久部分 ",这是否意味着它还可以防止使用时可能出现的问题@@IDENTITY
?还是我误解了交易的行为?
归档时间: |
|
查看次数: |
1323 次 |
最近记录: |