gpt4 book ai didi

sql - 是否可以在事务内(在 SQL Server 内)运行多个 DDL 语句?

转载 作者:行者123 更新时间:2023-12-01 19:48:46 25 4
gpt4 key购买 nike

我想知道是否可以在一个事务内运行多个 DDL 语句。我对 SQL Server 特别感兴趣,尽管其他数据库(至少是 Oracle、PostgreSQL)的答案也可能很有趣。

我一直在为事务内创建的表执行一些“CREATE TABLE”和“CREATE VIEW”,似乎存在一些不一致,我想知道 DDL 是否不应在事务内完成。 .

我可能可以将 DDL 移到事务之外,但是我想得到一些这方面的引用。到目前为止我发现了什么:

对于甲骨文:

如果有什么重要的事情,我会通过 JTDS JDBC 驱动程序使用 Java 来完成此操作。

b.r。灯子

最佳答案

我知道大多数数据库都有限制,但 Postgres 没有。您可以在事务中运行任意数量的表创建、列更改和索引更改,并且在 COMMIT 成功后,其他用户无法看到这些更改。数据库就应该是这样的! :-)

对于 SQL Server,您可以在事务内运行 DDL,但是 SQL Server does not version metadata ,因此在事务提交之前,其他人可以看到更改。但是some DDL statements can be rolled back if you are in a transaction ,但是对于哪些有效,哪些无效,您需要运行一些测试。

关于sql - 是否可以在事务内(在 SQL Server 内)运行多个 DDL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1043598/

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