以下语句是原子操作吗?
UPDATE [table1]
SET column1=@val1, column2.WRITE(@val2, NULL, 0) WHERE table1_id=@id
还是应该将其放置在事务中以确保在出现错误情况时不更新任何列或两列?
列定义为:
column1 int not null,
column2 varbinary(max) not null
以下语句是原子操作吗?
UPDATE [table1]
SET column1=@val1, column2.WRITE(@val2, NULL, 0) WHERE table1_id=@id
还是应该将其放置在事务中以确保在出现错误情况时不更新任何列或两列?
列定义为:
column1 int not null,
column2 varbinary(max) not null
这是一种说法。在 SQL Server 中,每条语句都带有一个隐含事务。如果您想了解更多详细信息,这是另一个答案。
这是关于Autocommit Transactions的 MSDN 参考,其中指出:
自动提交模式是 SQL Server 数据库引擎的默认事务管理模式。每个 Transact-SQL 语句在完成时都会提交或回滚。如果语句成功完成,则提交;如果遇到任何错误,则回滚。
在 ADO.NET 中使用 UPDATE .WRITE 修改大值(最大值)数据未记录影响 UPDATE 语句事务。