我想知道是否有可能在一个事务中运行多个DDL语句。我对SQL Server特别感兴趣,即使与其他数据库(至少Oracle,PostgreSQL)的答案也可能很有趣。是否有可能在事务内部(在SQL Server中)运行多个DDL语句?
我一直在做一些“创建表”和“创建视图”的交易内创建的表,并且似乎有一些不一致,我想知道如果不应该在事务内完成DDLs。 ..
我可能会移动DDL以外的交易,但 我想获得一些参考。我有这个迄今为止发现:
- MSDN Isolation Levels in the Database Engine页讲述清楚,有什么DDL操作可以是在快照隔离运行的显式事务进行限制 - 但我不使用快照隔离这应该导致错误。
- 这可以解释为使DDL操作可以在不同隔离级别下的显式事务中执行吗?
- Oracle® Database Gateway for SQL Server User's Guide#DDL Statements指出只有一个DDL语句可以在给定的交易执行 - 这是同样有效的SQL Server使用直?
对于Oracle:
- 内,从而质疑Unit testing DDL statements that need to be in a transaction这是说,甲骨文确实隐含提交了DDL语句? (即使没有引用)
如果有关系,我通过JTDS JDBC驱动程序来处理Java。
b.r. Touko
我正在使用JDBC连接#setAutoCommit(false)并且DML语句没有使用隐式事务完成。 结果似乎更像是创建视图的表并不总是存在或某物。 – Touko 2009-06-25 12:42:51
对于编辑:这可能是,但我想一些参考SQL Server文档或东西,无论是或不允许.. – Touko 2009-06-25 12:55:36
我用这本书,看看你是否找到网上? Microsoft®SQLServer®2008 T-SQL基础知识 打印ISBN-10:0-7356-2601-4 打印ISBN-13:978-0-7356-2601-0 – Stuart 2009-06-25 12:59:05