我很好奇,如果这可以实现,因为我目前正面临一个错误,并希望看到在事务中放置SELECT和UPDATE是否会修复它(如果你想知道为什么我不发布导致错误的代码,因为它是一个复杂的环境,我无法发布所有影响因素。)
我对此感兴趣的东西,如果你曾经历过代码,并且在 SELECT查询后写了 UPDATE查询,那么UPDATE会在SELECT之前执行(有可能脚本可能会运行两次排除。)
答案 0 :(得分:3)
这取决于交易的含义。 有两种类型的交易:
INSERT
,UPDATE
,SELECT
,DELETE
语句,并且在此类语句中没有显式的事务命令如果发生错误,数据库引擎将回滚整个语句。COMMIT
整个交易或ROLLBACK
。因此,您不能在一个查询中同时拥有SELECT
和UPDATE
,但您可以在以下事务中使用它们:
START TRANSACTION;
SELECT * FROM tableName;
UPDATE table SET something = 'other something' WHERE thirdsomething = @s;
COMMIT;
然后将它们放入存储过程或UDF中。
请注意: SELECT
语句不会修改数据,因此您可能不需要将其包含在事务中,因此在您的情况下,您将只有UPDATE
语句你可以在没有交易的情况下使用存储过程。