gpt4 book ai didi

SQL 服务器 : how transactions work

转载 作者:行者123 更新时间:2023-12-01 23:35:16 25 4
gpt4 key购买 nike

在 SQL Server 中,这将产生多少事务?

DECLARE @deleted BIGINT
SET @deleted = 100000
WHILE @deleted = 100000
BEGIN
DELETE TOP(100000) FROM MYTABLE WITH (ROWLOCK)
where Col1 = 7048 and COL2 = 39727 and Col3 = 0
SET @deleted = (SELECT @@ROWCOUNT)
END

如果我在运行 10 分钟后取消它是否需要回滚?

如果我不希望它在取消后回滚到一个迭代之后,添加一个 being 事务和结束事务是否可以解决这个问题?

如果我把它放在存储过程中会有什么不同吗?

最佳答案

当您没有BEGIN TRANSACTIONCOMMIT 时,您有隐含交易。而且,每个 DELETE 都将是一个单独的事务。因此,如果您取消脚本,它将回滚当前命令。但是,所有先前的 DELETE 步骤都已提交。

如果您在代码之前添加一个 BEGIN TRANSACTION 并在您的代码之后添加一个 COMMIT,那么您将获得一个事务。如果您取消查询,您将留下一个打开的事务,其中没有提交或回滚。在这种情况下,您必须提交一个 ROLLBACK 命令来启动回滚过程。

关于SQL 服务器 : how transactions work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com