gpt4 book ai didi

sql - 如何在 SQL Server 上为 DDL 启用事务

转载 作者:行者123 更新时间:2023-12-04 16:07:36 38 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Is it possible to run multiple DDL statements inside a transaction (within SQL Server)?



如果我有以下脚本:
BEGIN TRAN
GO

ALTER TABLE [dbo].[Table1] CHECK CONSTRAINT [FK_1]
GO

ALTER TABLE [dbo].[Users] CHECK CONSTRAINT [FK_2]
GO
COMMIT TRAN

交易不工作。它仍然在事务一语句中。例如,如果语句 1 失败,则在运行脚本时仍会执行语句 2。

如何为 DDL 启用事务?

最佳答案

您在不同的批次中运行 DDL,因此如果您的第一个语句引发的不是连接终止错误(硬件问题等),则第二个批次将运行。

管理工作室款待 GO作为批处理分隔符并分别运行每个批处理。

您可以使用 SET XACT_ABORT ON 在发生错误时自动回滚您的事务。您也可以删除 GO语句作为 ALTER TABLE 语句不需要在单独的批次中运行。

关于sql - 如何在 SQL Server 上为 DDL 启用事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823964/

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