我正在使用 MS SQL Server 2008 创建一个使用 INSERT SELECT 语句的查询:
插入表1(列1,列2)从表2中选择列1,列2
现在该查询的执行是在事务内:
伪代码:
try
{
begin transaction;
query;
commit;
}
catch
{
rollback;
}
如果TABLE2有大约40m行,在对TABLE1进行插入时,如果INSERT中间出现错误,INSERT SELECT语句会自行回滚还是我需要使用事务保持数据完整性?
有必要使用事务吗?或者 SQL SERVER 本身对这种类型的句子使用事务。
最佳答案
单个 SQL 命令是原子的。它将完成或回滚。
如果完成,包装该命令的事务可以将其回滚。如果它在事务之外,则在完成时提交。
关于sql - INSERT SELECT 语句和回滚 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3048959/