以下语句是原子操作吗?
UPDATE [table1]
SET column1=@val1, column2.WRITE(@val2, NULL, 0) WHERE table1_id=@id
还是应该放在事务中以确保在出现错误情况时不更新任何列或两列?
列定义为:
column1 int not null,
column2 varbinary(max) not null
答案 0 :(得分:2)
这是一个声明。在SQL Server中,每个语句都带有一个隐含的事务。如果你想了解更多细节,这是另一个答案。
答案 1 :(得分:1)
以下是Autocommit Transactions上的MSDN参考,其中指出:
未记录使用UPDATE .WRITE的自动提交模式是SQL Server数据库的默认事务管理模式 发动机。每个Transact-SQL语句都会在提交或回滚时提交 完成。如果语句成功完成,则提交;如果 它会遇到任何错误,它会被回滚。
Modifying Large-Value (max) Data in ADO.NET会影响UPDATE语句事务。